当前位置: 首页 > news >正文

1688精品货源网站入口wordpress 调用tag标签

1688精品货源网站入口,wordpress 调用tag标签,百度关键词优化工具,网站集约化建设会议议程本篇文章从实战角度出发#xff0c;将UniApp集成新大陆PDA设备RFID的全过程分为四部曲#xff0c;涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程#xff0c;轻松应对安卓原生插件开发与打包需求#xff01; ***环境问题移步至#xff1a;uniapp—an…本篇文章从实战角度出发将UniApp集成新大陆PDA设备RFID的全过程分为四部曲涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程轻松应对安卓原生插件开发与打包需求 ***环境问题移步至uniapp—android原生插件开发1环境准备 一、将App离线SDK解压并导入Android Studio中 下载地址Android 离线SDK - 正式版 | uni小程序SDK ***强烈建议不要不听劝本人踩了两天坑不然有意想不到的问题等着你解决 下载最新版本Android 离线SDK - 正式版不然会出现不兼容问题。最好用案例中的gradle版本不然会出现不兼容问题。包名能共用一个就共用一个不然难的去找问题。 解压App离线SDK、并将UniPlugin-Hello-AS项目导入Android Studio中 等待编译完成需要较长的时间15分钟左右根据电脑性能、网速决定 二、新建自定义模块uniplugin_rfid ***强烈建议不要不听劝本人踩了两天坑不然有意想不到的问题等着你解决 把模块名定义好。把事先定义好的包名直接拿过来用事先生成的appKey中填写的包名此处用之前定义好的包名当然也可以重新定义新的包名然后再去改appKey中的包名再重新生成appKey即可。 新建模块 定义模块名、定义包名生成模块 中途可能会因为build.gradle编译报错直接将uniplugin_module模块下的build.gradle覆盖刚生成模块下的build.gradle然后点击Try Again或者Sync Now 覆盖AndroidManifest.xml文件并修改配置此处会报错会提示你新建一个java类直接创建然后UniModule类必须继承UniModule必须UniJSMethod注解此时AndroidManifest.xml还会报错按照提示修复即可变成同样的结构。 创建RfidModule类如果上一步已创建则忽略此步骤 注意必须继承UniModule必须UniJSMethod注解 添加测试方法 package com.recognition.uniplugin_rfid;import android.content.Context; import android.util.Log;import com.alibaba.fastjson.JSONObject; import com.nlscan.uhf.lib.UHFReader;import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit;import io.dcloud.feature.uniapp.annotation.UniJSMethod; import io.dcloud.feature.uniapp.bridge.UniJSCallback; import io.dcloud.feature.uniapp.common.UniModule;public class RfidModule extends UniModule {// 使用UniJSMethod注解才能使用js调用UniJSMethod(uiThread false)public void add(JSONObject json, UniJSCallback callback) {final int a json.getInteger(a);final int b json.getInteger(b);callback.invoke(new JSONObject() {{put(code, 0);put(result, a b);}});}private MyUhfManager uhfManager;// 初始化UHF设备UniJSMethod(uiThread false)public void initialize(Context context) {if (context ! null) {uhfManager uhfManager.getInstance(context.getApplicationContext());} else {Log.e(UHFPlugin, Context is null, using application context instead.);uhfManager uhfManager.getInstance(context.getApplicationContext());}}// 连接UHF设备UniJSMethod(uiThread false)public boolean connect() {if (uhfManager ! null) {final CountDownLatch latch new CountDownLatch(1);final boolean[] isConnected {false};uhfManager.powerOn(result - {isConnected[0] result;latch.countDown(); // 回调完成时释放锁});try {// 等待回调完成设定超时以防止无尽等待latch.await(5, TimeUnit.SECONDS);} catch (InterruptedException e) {e.printStackTrace();}return isConnected[0];}return false;}// 断开连接UniJSMethod(uiThread false)public boolean disconnect() {if (uhfManager ! null uhfManager.isPowerOn()) {// 假设调用 stopInventory 后达到断开效果UHFReader.READER_STATE stopInventoryState uhfManager.stopInventory();// 如果有设置功率的方法也可以尝试将功率设为零来模拟断开uhfManager.setReadPower(0, result - {// 此处 result 用于表示功率设为0是否成功});// 检查 stopInventory 的状态是否成功return stopInventoryState UHFReader.READER_STATE.OK_ERR;}return false;}// 启动盘点UniJSMethod(uiThread false)public boolean startInventory() {if (uhfManager ! null) {UHFReader.READER_STATE state uhfManager.startInventory();return state UHFReader.READER_STATE.OK_ERR;}return false;}// 停止盘点UniJSMethod(uiThread false)public boolean stopInventory() {if (uhfManager ! null) {UHFReader.READER_STATE state uhfManager.stopInventory();return state UHFReader.READER_STATE.OK_ERR;}return false;}// 读取标签数据UniJSMethod(uiThread false)public String readTagData(int bank, int address, int blkcnt, String accessPassword) {if (uhfManager ! null) {byte[] data uhfManager.getDataByArea(bank, accessPassword, blkcnt);return data ! null ? UHFReader.bytes_Hexstr(data) : null;}return null;}// 写入标签数据到EPC区UniJSMethod(uiThread false)public boolean writeTagDataToEPC(String data, String accessPassword) {if (uhfManager ! null) {final CountDownLatch latch new CountDownLatch(1);final boolean[] writeSuccess {false};uhfManager.writeDataToEPC(data, accessPassword, (result, state) - {writeSuccess[0] result; // 将回调结果存储到数组中latch.countDown(); // 回调完成时释放锁});try {// 等待回调完成设置超时防止阻塞latch.await(5, TimeUnit.SECONDS);} catch (InterruptedException e) {e.printStackTrace();}return writeSuccess[0]; // 返回写入操作的结果}return false;}// 写入标签数据到用户区UniJSMethod(uiThread false)public boolean writeTagDataToUser(String data, String accessPassword) {if (uhfManager ! null) {final CountDownLatch latch new CountDownLatch(1);final boolean[] writeSuccess {false};uhfManager.writeDataToUser(data, accessPassword, (result, state) - {writeSuccess[0] result; // 将回调结果存储到数组中latch.countDown(); // 回调完成时释放锁});try {// 等待回调完成设置超时防止阻塞latch.await(5, TimeUnit.SECONDS);} catch (InterruptedException e) {e.printStackTrace();}return writeSuccess[0]; // 返回写入操作的结果}return false;}}三、将自定义插件添加到unapp插件中 在app中的build.gradle中添加自定义插件模块 在app中的dcloud_uniplugin.json添加自定义插件暴露的方法 编译通过即可下一步进行真机调试。 快速通道 uniapp—android原生插件开发1环境准备 uniapp—android原生插件开发3Android真机调试
http://www.hkea.cn/news/14516782/

相关文章:

  • 学做网站能赚多少钱实战直播
  • 耐克电子商务网站建设做平面设计的网站
  • 家教网站开发公司南通大型网站建设
  • 上海市网站制作济南腾飞网络网站建设
  • 做网站公司有什么出路it外包企业排名
  • 静态网站开发文章网站添加搜索
  • 网站开发站点的文件夹推广平台排行榜有哪些
  • 郑州营销网站公司地址制作企业网站的新闻显示
  • 制作网站商城网站后台修改不了
  • phpstudy做正式网站邢台网站制作公司
  • 建筑方案的网站南宁手机做网站公司
  • 建网站需要多少钱免费网址申请
  • 在线设计网名生成器seo优化前景
  • 电子商务网站建设可行性分析郑州企业排名
  • 温州专业做网站网站的推广方式有哪些
  • 六安高端网站建设公司响应式布局的优点是什么
  • 陕西省住房和城乡建设厅门户网站重庆建工
  • wordpress的网站好用吗北京建筑设计公司前十名
  • 文化事业建设费在哪个网站申报做北京电梯招标的网站
  • dw网站首页的导航怎么做室内设计装修风格大全
  • discuz做商城网站惠州seo关键字排名
  • 长沙市建设发展集团有限公司网站云盘搜索引擎入口
  • 网站安全设计网站制作的步骤
  • 深圳手机建站模板网站建设后运维合同
  • 抄袭别人网站的前端代码合法吗镇江唐唐网络科技有限公司
  • 优酷视频网站开发旅游网站 静态模板
  • 泉州网站制作案例网络品牌营销推广
  • 2015网站备案没下来游戏加盟项目
  • 什么是网站域名软件下载免费大全网站
  • 网站建设制作 优帮云视频生成链接网站