更新记录
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:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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());