更新记录

1.9(2022-10-12)

1.增加多条码识别接口 2.增加多条码精准识别接口 3.增加多条码数量设置接口

1.8(2022-05-26)

1.增加扫描按键配置接口

1.7(2021-12-27)

解决部分设备调用initScan后没有返回结果的问题。

查看更多

平台兼容性

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原生插件配置”->”云端插件“列表中删除该插件重新选择


iData条码扫描插件

使用前请仔细阅读上方的官方教程

用于接收iData品牌扫描条码数据

插件类导入

示例代码

//获取module
var barcodeModel = uni.requireNativePlugin("iData-BarcodePlugin-BarcodeModule")

插件接口方法

1.初始化扫描 initScan

建议在页面 onLoad 方法里调用

示例代码

//接口initScan(UniJSCallback callback)
//使用示例
barcodeModel.initScan((ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

2.获取扫描结果

通过 globalEvent 全局监听 iDataBarcodeEvent

示例代码

//页面监听event事件,建议在页面onLoad方法里调用
var globalEvent = uni.requireNativePlugin('globalEvent');

globalEvent.addEventListener('iDataBarcodeEvent', function(e) {
    modal.toast({
    //条码结果示例:{"barcode","条码数据"}
    message: "收到条码:" + JSON.stringify(e),
        duration: 1.5
    });
});

3.结束扫描 closeScan

示例代码


//建议在页面onUnload方法里调用
//接口closeScan(UniJSCallback callback)
barcodeModel.closeScan((ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

4.开启扫描 scanStart

根据业务进行触发,扫描到条码后会停止扫描(仅适用于单次扫描)

示例代码

//接口scanStart(UniJSCallback callback)
barcodeModel.scanStart((ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

5.停止扫描 scanStop

根据业务进行触发(仅适用于单次扫描)

示例代码

//接口scanStop(UniJSCallback callback)
barcodeModel.scanStop((ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

6.设置连续扫描间隔时间 intervalSet

请在开始连续扫描之前调用这个接口

示例代码

//接口intervalSet(string value,UniJSCallback callback)
//value为扫描间隔时间,单位为ms
barcodeModel.intervalSet(value,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

7.设置连续扫描 continueScan

示例代码

//接口continueScan(bool enable,UniJSCallback callback)
//enable为bool类型,true为开启连续扫描,false为关闭连续扫描
barcodeModel.continueScan(enable,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

8.设置解码区域 setCenterMode

示例代码

//接口setCenterMode(int mode,UniJSCallback callback)
//mode为int类型,0:区域解码,默认值;1:中心解码,开启后系统只识别瞄准光中心区域的条码
//接口仅支持iScanPro软件
barcodeModel.setCenterMode(mode,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

9.设置扫描按键功能 setScanKeyEnable

示例代码

//setScanKeyEnable(boolean enable, UniJSCallback callback)
//enable为bool类型,true为启用扫描键扫码功能,false为禁用扫描键扫码功能,默认为true
//当设置为false后,可以自行监听扫描按键,实现自定义功能
barcodeModel.setScanKeyEnable(false,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

10.设置多条码识别功能 setMultiBarcodeEnable

示例代码

//setMultiBarcodeEnable(boolean enable, UniJSCallback callback)
//enable为bool类型,true为启用多条码识别功能,false为禁用多条码功能,默认为false
//当设置为false后,仅识别单个条码;设置为true后,支持同时识别多个条码,每个条码数据一行,分隔符为'\n'
//仅支持内置iScanPro并且具有多条码识别功能选项的机型
barcodeModel.setMultiBarcodeEnable(true,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

11.设置多条码精准识别功能 setMultiBarcodePreciseStatus

示例代码

//setMultiBarcodePreciseStatus(boolean enable, UniJSCallback callback)
//enable为bool类型,true为启用多条码精准识别功能,false为禁用多条码精准功能,默认为false
//需启用多条码识别功能,并且设置多条码识别数量,支持识别时校验条码数量,仅符合条件的条码结果会返回
//仅支持内置iScanPro并且具有多条码识别功能选项的机型
barcodeModel.setMultiBarcodePreciseStatus(true,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

12.设置多条码识别数量 setMultiBarcodeNumber

示例代码

//setMultiBarcodeNumber(int number, UniJSCallback callback)
//number为多条码识别数量
//需启用多条码识别功能
//仅支持内置iScanPro并且具有多条码识别功能选项的机型
barcodeModel.setMultiBarcodeNumber(3,(ret) => {
    modal.toast({
        message: ret,
        duration: 1.5
    });
});

备注

示例代码用到modal变量,用于显示Toast信息,导入方法如下:

const modal = uni.requireNativePlugin('modal');

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

iData Copyright (c) 2021 Lzy

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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