更新记录
V1.0.1(2023-02-10)
V1.0.1 优化部分代码
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.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原生插件配置”->”云端插件“列表中删除该插件重新选择
KMax-RFID原生插件使用说明
1.获取rfid对象
const rfid = uni.requireNativePlugin('KMax-RFID');
2.开始读取RFID标签
rfid.Read((res)=> {});
res参数为Read方法的执行结果,字符串型,值包括:"开始读取","读取失败"
3.订阅读取到的数据
在onLoad中添加如下方法订阅读取事件
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('ScanEvent', (e)=> {
console.log(e.ScanEvent);
});
4.停止读取RFID标签
rfid.Stop((res)=> {});
res参数为Stop方法的执行结果,字符串型,值包括:"停止读取","停止失败"
5.示例代码
其中event.keyCode == '285'
是PDA扫码枪的按键值
<template>
<view class="content">
<view style="width: 90%;">
<text style="float: left;text-align: center;width: 90%;">EPC</text>
<text style="float: right;text-align: center;width: 10%;">次数</text>
</view>
<view v-for="(item, index) in DataList" :key="index" style="width: 90%;">
<text style="float: left;text-align: left;;width: 90%;">{{item.EPC}}</text>
<text style="float: right;text-align: center;width: 10%;">{{item.Count}}</text>
</view>
<view class="text-area" style="margin-top: 50rpx;">
<button @click="Read">扫码</button>
<button style="margin-left: 50rpx;" @click="Stop">停止</button>
<button style="margin-left: 50rpx;" @click="Clean">清空</button>
</view>
</view>
</template>
<script>
const rfid = uni.requireNativePlugin('KMax-RFID')
export default {
data() {
return {
bReading: false,
DataList: [],
}
},
onLoad() {
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('ScanEvent', (e)=> {
// plus.nativeUI.toast(JSON.stringify(e));
console.log(e.ScanEvent.epc);
let item = this.DataList.find((x) => {
return x.EPC == e.ScanEvent.epc;
});
if (item == null) {
this.DataList.push({
EPC: e.ScanEvent.epc,
Count: 1
});
} else {
item.Count++;
}
});
plus.key.addEventListener('keydown', event => {
// console.log("keydown:" + event.keyCode);
if (!this.bReading && event.keyCode == '285') {
this.Read();
}
});
plus.key.addEventListener('keyup', event => {
// console.log("keyup:" + event.keyCode);
if (this.bReading && event.keyCode == 285) {
this.Stop();
}
});
},
methods: {
Read() {
this.bReading = true;
console.log("开始");
rfid.Read(function(res) {
console.log(res);
plus.nativeUI.toast(res);
});
},
Stop() {
console.log("停止");
this.bReading = false;
rfid.Stop(function(res) {
console.log(res);
plus.nativeUI.toast(res);
});
},
Clean(){
this.DataList=[];
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.text-area {
display: flex;
justify-content: center;
}
</style>