• 【uniapp】使用扫码插件,解决uni.scanCode扫码效率低的问题


    1. 背景

    uniapp 中自带的二维码扫描的 API 是 uni.scanCode,但有如下问题:

    二维码扫描的效率不高,有些需要扫2秒左右

    较小或模糊的一些二维码无法识别出来,多次扫同样的一个码可能出现扫码失败的情况

    受环境影响大,比如光线暗时识别率低

    若二维码中间放置了自定义 logo,有一定概率无法识别到该二维码

    uniapp 官方文档也提到:

    App的扫码引擎,使用业内开源的通用扫码库,扫码效率比不过微信、支付宝等商业扫码库。

    故推荐使用支付宝扫码插件:https://ext.dcloud.net.cn/plugin?id=2636

    2. 前期准备

    2.1 开通阿里云 mPaaS

    登录阿里云控制台,在 mPaaS产品页 中,进入 [开通产品] 页面,点击 [立即开通],按提示步骤进行操作

    image.png

    image.png

    2.2 创建 mPaaS 应用

    开通后,在 mPaaS 产品页创建一个 mPaaS 应用(创建步骤)

    2.3 配置 config 并下载(以安卓为例)

    3. 插件使用步骤

    1、进入 插件页面,点击购买插件,选择插件绑定的项目

    image.png

    2、在 HBuilderX 里找到项目,在 manifest 的 [app原生插件配置] 中,点击 [选择云端插件],选择插件并确认

    image.png

    3、填写 AppID、WorkspaceID、License,这三个值都可在第二大点 [前期准备] 的 2.3 中下载后得到的 .config 配置文件中查到,用记事本打开该文件进行查看即可

    4、在代码中引用插件,调用插件功能

    image.png

    var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")

    mpaasScanModule.mpaasScan({

    // 扫码识别类型,参数可多选,qrCode、barCode,不设置,默认识别所有

    'scanType':  ['qrCode','barCode'],

    // 是否隐藏相册,默认false不隐藏

    'hideAlbum': false

    },

    (ret) => {

    uni.showModal({

    title: "弹窗标题",

    // 返回值中,resp_code 表示返回结果值,10:用户取消,11:其他错误,1000:成功

    // 返回值中,resp_message 表示返回结果信息

    // 返回值中,resp_result 表示扫码结果(字符串类型),只有成功才会有返回

    content: JSON.stringify(ret),

    showCancel: false,

    confirmText: "确定"

    })

    })

    5、插件只会在 自定义基座 或 正式打包 后生效

  • 相关阅读:
    手拉手springboot整合kafka发送消息
    【无标题】
    基于Rplidar二维雷达使用Hector_SLAM算法在ROS中建图
    使用requests 请求https 报403
    UWB承启定位基站
    【Unity细节】VS不能附加到Unity程序中解决方法大全
    从区划边界geojson中查询经纬度坐标对应的省市区县乡镇名称,开源Java工具,内存占用低、高性能
    flink 一个简单的wordcount
    GPT的历史
    javaee 事务 事务的特性 事务的并发问题 事务的隔离级别
  • 原文地址:https://blog.csdn.net/yu502586512/article/details/134479250