# uni.scanCode(OBJECT)

调起客户端扫码界面,扫码成功后返回对应的结果。

平台差异说明

App H5 微信小程序 支付宝小程序 百度小程序 抖音小程序、飞书小程序 QQ小程序 快手小程序 京东小程序
x

HarmonyOS Next 兼容性

HarmonyOS Next
HBuilderX 4.23

OBJECT 参数说明

参数名 类型 必填 说明 平台差异说明
onlyFromCamera Boolean 是否只能从相机扫码,不允许从相册选择图片 抖音小程序、百度小程序、支付宝小程序不支持此参数
scanType Array 扫码类型,参考下方scanType的合法值 抖音小程序不支持此参数
autoDecodeCharset Boolean 是否启用自动识别字符编码功能,默认为否 App
autoZoom Boolean 是否启用自动放大,默认启用 仅 App-Android (3.5.4+) 支持
barCodeInput Boolean 是否支持手动输入条形码 仅飞书小程序(V3.14.0)支持
hideAlbum Boolean 是否隐藏相册(不允许从相册选择图片),只能从相机扫码。默认值为 false。 仅支付宝小程序支持
success Function 接口调用成功的回调,返回内容详见返回参数说明。
fail Function 接口调用失败的回调函数(识别失败、用户取消等情况下触发)
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

scanType的合法值

说明
barCode 一维码
qrCode 二维码
datamatrix Data Matrix 码
pdf417 PDF417 条码

success 返回参数说明

参数 说明 平台差异说明
result 所扫码的内容
scanType 所扫码的类型 App、微信小程序、百度小程序、QQ小程序、京东小程序、支付宝小程序
charSet 所扫码的字符集 App、微信小程序、百度小程序(所扫码的字符集,仅支持 Android 系统)、QQ小程序、京东小程序
path 当所扫的码为当前应用的合法二维码时,会返回此字段,内容为二维码携带的 path。 微信小程序、QQ小程序、京东小程序
rawData 原始数据,base64 编码 微信小程序、QQ小程序、京东小程序、支付宝小程序
code 扫码所得数据 支付宝小程序
qrCode 扫描二维码时返回二维码数据 支付宝小程序
barCode 扫描条形码时返回条形码数据 支付宝小程序
imageChannel 来源 支付宝小程序

示例

// 允许从相机和相册扫码
uni.scanCode({
	success: function (res) {
		console.log('条码类型:' + res.scanType);
		console.log('条码内容:' + res.result);
	}
});

// 只允许通过相机扫码
uni.scanCode({
	onlyFromCamera: true,
	success: function (res) {
		console.log('条码类型:' + res.scanType);
		console.log('条码内容:' + res.result);
	}
});

// 调起条码扫描
uni.scanCode({
	scanType: ['barCode'],
	success: function (res) {
		console.log('条码类型:' + res.scanType);
		console.log('条码内容:' + res.result);
	}
});

Tip

  • App的扫码引擎,使用业内开源的通用扫码库,识别效率比不过微信、支付宝、华为、谷歌等商业扫码库。如需更强的扫码效果,推荐使用uts插件:https://ext.dcloud.net.cn/search?q=%E6%89%AB%E7%A0%81&orderBy=Relevance&cat1=8&cat2=81
  • App-vue如果想自定义扫码,可参考uni-app中如何使用5+的原生界面控件plus.barcode API
  • App-nvue,支持barcode组件,可自定义扫码界面。详见。App端自定义扫码界面,建议使用nvue方式。
  • 微信小程序自定义扫码界面,可使用camera组件。详见
  • 微信内嵌浏览器运行H5版时,可通过js sdk实现扫码,需要引入一个单独的js,详见
  • 在扫码界面点击返回也会进入 fail 回调中
  • 支付宝小程序不支持 success 回调中的charSetpath
  • HX 3.4.4之后版本 android 新增 检测到 QR 码时自动放大功能,提升扫码识别率。