更新记录

V1.0.1(2023-02-10)

V1.0.1 优化部分代码


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.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原生插件配置”->”云端插件“列表中删除该插件重新选择


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>

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。

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