更新记录
1.6(2024-04-01) 下载此版本
新增GX模块适配
1.5(2024-01-03) 下载此版本
调整兼容最低版本号为Android5.0
1.4(2023-06-29) 下载此版本
1.新增频率设置、频率获取接口 2.兼容新的RFID模块
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 11.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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用前请仔细阅读上方的官方教程↑↑↑
使用前请仔细阅读上方的官方教程↑↑↑
使用前请仔细阅读上方的官方教程↑↑↑
iData UHF扫描插件
用于接收iData品牌扫描UHF标签数据
插件类导入
示例代码
//获取module
var uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule")
插件接口方法
1.初始化扫描 initUHF
建议在页面 onLoad
方法里调用
示例代码
//接口initUHF(int mode,UniJSCallback callback)
//参数说明:mode - 1为SLR模块,0为UM模块,2为GX模块,如不清楚设备模块类型,请联系技术人员
//使用示例
//注意:此方法较为耗时,若频繁调用可能会导致出现ANR问题
uhfModel.initUHF(0,(ret) => {
console.log(ret);
modal.toast({
message: ret,
duration: 1.5
});
});
2.获取模块上电结果
通过 globalEvent
全局监听 POWEREvent
示例代码
//页面监听event事件,建议在页面onShow方法里调用
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('POWEREvent', function(e) {
console.log(JSON.stringify(e));
//模块上电结果示例:{"status":"connected"}
if(e["status"] == "connected"){
//上电成功
}
});
3.获取UHF盘点扫描结果
通过 globalEvent
全局监听 iDataUHFEvent
示例代码
//页面监听event事件,建议在页面onShow方法里调用
var globalEvent2 = uni.requireNativePlugin('globalEvent');
globalEvent2.addEventListener('iDataUHFEvent', function(e) {
console.log(JSON.stringify(e));
//盘点扫描结果示例:{"tid":"0000","epc":"0000"}
});
4.开始/结束扫描 startOrStopRFID
根据业务进行触发,切换盘点开始或结束
示例代码
//接口closeScan(UniJSCallback callback)
//注意:调用前需确保模块上电成功,通常调用初始化接口后2-3秒会上电成功
uhfModel.startOrStopRFID((ret) => {
console.log(JSON.stringify(ret));
//开始/结束扫描结果示例:{"code":"success","msg":"start"}
//说明:msg为start当前为盘点开始,否则为盘点结束
});
5.盘点标签返回的数据内容模式设置 readTagModeSet
默认盘点标签时仅返回标签的epc数据,如需返回其他区域的数据,需调用这个接口进行设置
示例代码
//接口readTagModeSet(int mode, UniJSCallback callback)
//参数说明:mode - 设置0只读取标签EPC,1读取标签EPC和TID
//注意:部分模块仅支持盘点标签时返回epc数据,如接口返回失败通常为模块不支持该功能,实际请以设备自带UHFDemo测试为准。
//注意:调用前需确保模块上电成功,通常调用初始化接口后2-3秒会上电成功
uhfModel.readTagModeSet(1, (ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
6.盘点标签返回的数据内容模式获取 readTagModeGet
示例代码
//接口readTagModeGet(UniJSCallback callback)
uhfModel.readTagModeGet((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
7.模块下电 closeUHF
示例代码
//建议在页面生命周期onHide和onUnload进行调用
//同时需移除globalEvent,避免页面再次打开时重复接收数据
//接口closeUHF()
uhfModel.closeUHF();
globalEvent.removeEventListener('POWEREvent');
globalEvent.removeEventListener('iDataUHFEvent');
8.单标签读取,无过滤条件 readTagWithoutFilter
仅适用于单张标签的读取,建议适当调低天线功率,避免误读。
示例代码
//接口readTagWithoutFilter(int readBank, int startBlock, int len, String pwd, UniJSCallback callback)
//参数说明:
//readBank:0->RESERVED,1->EPC,2->TID,3->USR
//startBlock:读取的起始地址(Word类型)
//len:读取的数据长度(Word类型,大于0)
//pwd:访问密码,默认密码为:00000000
//注意:Word类型,一个长度表示标签存储4位字符
//EPC从地址2开始读取,tid通常从地址0开始读取
uhfModel.readTagWithoutFilter(1, 2, 6, "00000000", (ret) => {
//返回数据示例:{"code":"success","data","12345678"}
modal.toast({
message: ret,
duration: 1.5
});
});
9.单标签写入,无过滤条件 writeTagWithoutFilter
仅适用于单张标签的数据修改,建议适当调低天线功率,避免误读。
示例代码
//接口writeTagWithoutFilter(int writeBank, int startBlock, String writeData, String pwd, UniJSCallback callback)
//参数说明:
//writeBank:0->RESERVED,1->EPC,2->TID,3->USR
//startBlock:读取的起始地址(Word类型)
//writeData:写入的数据
//pwd:访问密码,默认密码为:00000000
//注意:Word类型,一个长度表示标签存储4位字符
uhfModel.writeTagWithoutFilter(1, 2, "1234567890ABCDEF", "00000000", (ret) => {
//返回数据示例:{"code":"success"}
modal.toast({
message: ret,
duration: 1.5
});
});
10.单标签读取,有过滤条件 readTagWithFilter
仅适用于单张标签的读取,建议适当调低天线功率,避免误读。
示例代码
//接口readTagWithFilter(int fBank, int fStartBlock, int fLen, String fData, int readBank, int startBlock, int len, String pwd, UniJSCallback callback)
//参数说明:
//过滤条件
//fBank:操作区域 0->RESERVED,1->EPC,2->TID,3->USR
//fStartBlock:起始地址,bit类型(4个长度代表标签存储1个字符)
//fLen:数据长度,bit类型(4个长度代表标签存储1个字符)
//fData:过滤数据
//读标签条件
//readBank:0->RESERVED,1->EPC,2->TID,3->USR
//startBlock:读取的起始地址(Word类型)
//len:读取长度(Word类型)
//pwd:访问密码,默认密码为:00000000
//注意:Word类型,一个长度表示标签存储4位字符
uhfModel.readTagWithFilter(1, 32, 32, "12345678", 1, 2, 6, "00000000", (ret) => {
//返回数据示例:{"code":"success","data","12345678"}
modal.toast({
message: ret,
duration: 1.5
});
});
11.单标签写入,有过滤条件 writeTagWithFilter
仅适用于单张标签的数据修改,建议适当调低天线功率,避免误读。
示例代码
//接口writeTagWithFilter(int fBank, int fStartBlock, int fLen, String fData, int writeBank, int startBlock, String writeData, String pwd, UniJSCallback callback)
//参数说明:
//过滤条件
//fBank:操作区域 0->RESERVED,1->EPC,2->TID,3->USR
//fStartBlock:起始地址,bit类型(4个长度代表标签存储1个字符,epc通常从32开始)
//fLen:数据长度,bit类型(4个长度代表标签存储1个字符)
//fData:过滤数据
//写标签条件
//writeBank:0->RESERVED,1->EPC,2->TID,3->USR
//startBlock:读取的起始地址(Word类型)
//writeData:写入的数据(Word类型)
//pwd:访问密码,默认密码为:00000000
//注意:Word类型,一个长度表示标签存储4位字符
uhfModel.writeTagWithFilter(1, 32, 32, "12345678", 1, 2, "1234567890ABCDE1", "00000000", (ret) => {
//返回数据示例:{"code":"success"}
modal.toast({
message: ret,
duration: 1.5
});
});
12.盘点模式设置 inventoryModeSet
不同的盘点模式适应不同的使用场景
示例代码
//接口inventoryModeSet(int mode, UniJSCallback callback)
//参数说明:mode - UM设置0:多标签模式,侧重读全标签,读取距离较近 1:快盘模式,侧重快速读取标签,读取距离较远 2.低功耗模式 SLR设置0:异步模式 SLR5100模组使用 2:智能控温模式(不支持设置占空比) 3:新快速模式 E系列模组使用(不支持设置占空比) 4:普通模式
uhfModel.inventoryModeSet(0, (ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
13.盘点模式获取 inventoryModeGet
示例代码
//接口inventoryModeGet(UniJSCallback callback)
uhfModel.inventoryModeGet((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
14.占空比参数设置 inventoryWaitTimeSet
用于解决长时间盘点标签,导致模块发热并降低性能 注有些模式不支持设置占空比
示例代码
//接口inventoryWaitTimeSet(int scanTime, int waitTime, boolean save, UniJSCallback callback)
//参数说明:
//scanTime:盘点时间
//waitTime:休眠时间
//save:是否断电保存配置
uhfModel.inventoryWaitTimeSet(0, (ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
15.占空比参数获取 inventoryWaitTimeGet
示例代码
//接口inventoryWaitTimeGet(UniJSCallback callback)
uhfModel.inventoryWaitTimeGet((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
16.天线功率参数设置 setPower
天线功率直接影响读取标签的距离,值越大,读取的距离越远
示例代码
//接口setPower(int power, UniJSCallback callback)
//参数说明:
//power:0-33
//不同模块支持的功率值不同,如果返回失败通常是不支持
uhfModel.setPower(20, (ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
17.天线功率参数获取 getPower
示例代码
//接口getPower(UniJSCallback callback)
uhfModel.getPower((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
18.频率设置 setFrequencyMode mode 0:中国(840-845MHz),1:中国(920-925MHz),2:欧洲(865-868MHz), 3:美国(902-928MHz)
示例代码
//接口 setFrequencyMode(int mode , UniJSCallback callback)
uhfModel.setFrequencyMode(1,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
19.频率获取 getFrequencyMode
### 示例代码
// 接口 getFrequencyMode(UniJSCallback callback)
uhfModel.getFrequencyMode((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
备注
示例代码用到modal变量,用于显示Toast信息,导入方法如下:
const modal = uni.requireNativePlugin('modal');