更新记录

1.0.0(2023-02-16)

1.0.0 2020-08-08 完成设备联调,能够读取设备接口


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 8.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


插件使用说明

  • 通过将原生sdk转换为插件方式实现,转换蓝牙读写设备sdk,通过转换LDK70-AMA0189接口。
  • 本插件是将原生设备的sdk进行转换,形成uniapp可以调用的方式。
  • 实现了设备的初始化、二维码读取和NFC接口调用。
  • 将转换的源代码一并发出,可以学习一下如何转换sdk的过程。

bait-read-UHF调用代码示例

// #ifdef APP-PLUS
 const KHLTUHF = uni.requireNativePlugin('bait-read-UHF');
 // #endif 
KHLTUHF.open(this.blueAddr, resuhf => {
          console.log(resuhf);
          if (resuhf.success) {
            uni.showToast({
              icon: 'none',
              title: '蓝牙打开完成',
            });
            let openData = {
              blueAddr: this.blueAddr,
              blueStatusName: '成功',
              isOpen: true
            };
            this.setOpen(openData);
            this.setEquip();
          } else {
            uni.showToast({
              icon: 'none',
              title: '设备打开失败,' + resuhf.data,
            });
            let openData = {
              blueAddr: this.blueAddr,
              blueStatusName: '失败',
              isOpen: false
            };
            this.setOpen(openData);
          }
        });

readEquips: function() {
        // #ifdef APP-PLUS
        if (!this.isOpen) {
          uni.showToast({
            icon: 'none',
            title: '设备未打开,请重新连接设备!',
          });
          return;
        }
        KHLTUHF.Read_RFID(res => {
          console.log('读取到编号:' + res.data);
          uni.showToast({
            icon: 'none',
            title: '读取编号:' + res.data,
          });
          this.smjg(res.data);
        });
        // #endif 
      }

Android原生部分代码如下:

public void onCreate(Application application) {
        //可写初始化触发逻辑
        Log.d(TAG, "执行rfid初始化工作开始------------------------------------");
        Context context=application.getBaseContext();
        String path = context.getDir("lib", Context.MODE_PRIVATE).getAbsolutePath();
        rfids=new UHFInstance(context,path);
        Log.d(TAG, "执行rfid初始化工作结束------------------------------------");
    }

/**

   * 蓝牙接收数据事件
     /
         private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
     @Override
     public void onReceive(Context context, Intent intent) {
         String action = intent.getAction();
         // When discovery finds a device
         if (BluetoothDevice.ACTION_FOUND.equals(action)) {
             Log.d(TAG, "发现蓝牙设备!");
             // Get the BluetoothDevice object from the Intent
             BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
             // If it's already paired, skip it, because it's been listed already
             // if (device.getBondState() != BluetoothDevice.BOND_BONDED) {
     //                if(device.getName() == null)return;
             JSONObject jsonObject=new JSONObject();
             jsonObject.put("name",device.getName());
             jsonObject.put("addr",device.getAddress());

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问