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

  1. 背景

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

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

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

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

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

uniapp 官方文档也提到:

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

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

  1. 前期准备

2.1 开通阿里云 mPaaS

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

2.2 创建 mPaaS 应用

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

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

  1. 插件使用步骤

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

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

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

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

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、插件只会在 自定义基座 或 正式打包 后生效

相关推荐
鹏晨互联19 小时前
【Compose vs XML:边框内外间距的实现对比】
android·xml
Android系统攻城狮19 小时前
Android tinyalsa深度解析之pcm_plugin_write调用流程与实战(一百七十九)
android·pcm·tinyalsa·android16·音频进阶·android音频进阶
ID_1800790547319 小时前
除了JSON,淘宝店铺商品API接口还支持哪些数据格式?
android·数据库
KillerNoBlood20 小时前
2026移动端跨平台开发面经总结
android·算法·flutter·ios·移动开发·鸿蒙·kmp
消失的旧时光-194320 小时前
Android / IoT 面试复盘总结:从 MQTT、TLS 到 JWT 权限体系(标准答案 + 工程理解 + 延伸知识链)
android·物联网·面试
林多21 小时前
【Android】 GPU过度绘制实现原理
android·gpu·性能·实现原理·过度绘制·overdraw
薄荷椰果抹茶21 小时前
手机端Obsidian安装与同步全攻略
android
醇氧21 小时前
CentOS 7安装 mysql-8.0.27-1.el7.x86_64.rpm 安装包
android·mysql·centos
号码认证服务21 小时前
给用户打电话,怎么在对方手机显示为“XX证券”?号码认证办理步骤
android·运维·服务器·ios·智能手机·iphone·webview
Kapaseker1 天前
我为什么让 Toast 多弹了一次
android·kotlin