更新记录

1.7(2021-04-13)

V1.7开放是否已经授权无障碍服务、主动开启授权引导、关闭插件的调用接口 ---更新md插件使用说明!!!

1.6(2021-04-12)

V1.6开放是否已经授权无障碍服务、主动开启授权引导、关闭插件的调用接口

1.5(2021-03-31)

V1.5由于键盘跟扫码器在不同终端上存在兼容问题,故版本回退到1.2,等后期把兼容问题完全解决再重新上架,感谢大家的支持

查看更多

平台兼容性

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


1、插件说明

为了解决Android工位机上使用USB外设条码枪/键盘时,必须要有光标位置才能输出条码值,故用Android原生代码做了USB扫码枪/键盘的识别插件,该插件可完全不受限光标以及当前活动页,亦可后台运行,且与光标所在区域的虚拟按键输出完全不冲突; 后续也会根据用户反馈持续完善插件... V1.2版本增加了特殊字符的正确解析,如:<>?:"{}|~!@#$%^&*()_+

<!-- V1.3版本增加了USB键盘的键盘值输出,键盘值的格式为KEYCODE_%_%,如Enter回车键为KEYCODE_ENTER,小键盘的Enter建为KEYCODE_NUMPAD_ENTER,具体可以看监听日志 -->

V1.5由于键盘跟扫码器在不同终端上存在兼容问题,故版本回退到1.2,等后期把兼容问题完全解决再重新上架,感谢大家的支持 V1.7开放是否已经授权无障碍服务、主动开启授权引导、关闭插件的调用接口 md文件无法更新,关闭插件请用“onStopUSBScan”函数 2、代码示例

<template>
    <view class="content">
        <view class="text-area">
            <text class="title">{{title}}</text>
        </view>
        <image class="logo" src="/static/logo.png"></image>     
        <view class="btn-row">
            <button type="primary" class="primary" @tap="initUsb">初始化并开始监听</button>
            <button type="primary" class="primary" @tap="onStopUSBScan">关闭监听</button>
            <button type="primary" class="primary" @tap="isAccessibility">是否已经开启无障碍辅助授权</button>
            <button type="primary" class="primary" @tap="setAccessibility">主动开启授权</button>
        </view>
    </view>
</template>

<script>    
const scan = uni.requireNativePlugin('felix-scan-module');
    export default {
        data() {
            return {
                title: '扫码枪返回值',
            }
        },
        onLoad() {
            console.log("onLoad");          
            if(scan==undefined){
                console.log("scan:undefined");
            }
            else{
                console.log("scan:ok");
                //定义监听
                var globalEvent = uni.requireNativePlugin('globalEvent');
                //监听插件回调事件
                globalEvent.addEventListener('onUsbBarcode',this.onUsbBarcode);
                console.log("scan addEventListener:ok");                
            }
        },
        onShow() {
            console.log("onShow");
            // return;  
        },
        onHide() {
            console.log("onHide");
        },
        methods:{           
            //初始化插件(初始化过程中会自动验证是否已经开启授权,并跳转至授权引导页)
            initUsb() {
                console.log("initUsb");             
                scan.initUsb();
                console.log("scan init:ok");
            },
            //关闭插件
            onStopUSBScan() {
                console.log("onStopUSBScan");               
                scan.onStopUSBScan();
            },      
            //验证是否已经开启无障碍服务授权
            isAccessibility() {
                console.log("isAccessibility begin...");
                scan.isAccessibility((res) => {
                    console.log(JSON.stringify(res));
                    console.log("isAccessibility:"+res.result);
                });
            },
            //主动开启无障碍服务授权
            setAccessibility() {
                console.log("setAccessibility");
                scan.setAccessibility();
            },
            //扫码回调 "barcode":"100008961578"
            onUsbBarcode(e){
                if(e.barcode!=""){
                    this.title=e.barcode;
                }                
                console.log('onBarcode:'+JSON.stringify(e));
            },
        },
    }
</script>

隐私、权限声明

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

首次使用插件初始化时会自动跳转到无障碍服务进行服务的授权 "<uses-permission android:name=\"android.permission.BIND_ACCESSIBILITY_SERVICE\"/>" Uniapp的授权需要勾选 "<uses-permission android:name=\"android.permission.BIND_ACCESSIBILITY_SERVICE\"/>" "<uses-permission android:name=\"android.permission.WRITE_SECURE_SETTINGS\"/>" "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"

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

插件不采集任何数据

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

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