更新记录

1.0.0(2026-07-07)

  • 发布统一扫码 API,覆盖 Android / iOS / HarmonyOS / Web / 微信小程序
  • 支持单次扫码、持续扫码、多码识别与点选、手电筒、内容解析、扫描线样式
  • App 端基于原生相机预览(Android CameraX + ML Kit,iOS AVFoundation)
  • 提供 uni-app pages/ 与 uni-app x pagesx/ 示例

平台兼容性

uni-app(5.06)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue app-nvue插件版本 Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本
1.0.0 1.0.0 - - 1.0.0 1.0.0 5.0 1.0.0 12 1.0.0 5.0+ 1.0.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- × × × × × × × × × × ×

uni-app x(5.06)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 鸿蒙插件版本 微信小程序
- - 5.0 1.0.0 12 1.0.0 5.0+ 1.0.0 -

其他

多语言 暗黑模式 宽屏模式
× ×

xview-scancode

Android / iOS / HarmonyOS / Web / 微信小程序统一扫码插件。

支持二维码、条形码、单次/持续扫码、同屏多码识别、手电筒、扫描线样式和内容类型解析。

能力

  • 码制:二维码、一维码、Data Matrix、PDF417
  • 模式:单次扫码、持续扫码、多码累计
  • 多码:Android / iOS 预览层点选,或 outputAllCodeData 一次返回全部码(含 rect 坐标)
  • 解析:texturlwifiphonesmsemailcontactgeocalendardriverLicenseisbnproduct
  • 样式:viewStyle / scanLine 直接绘制在原生相机预览页
  • Web:onlyFromCamera: false 时预览层提供「上传图片」入口

快速使用

import { parseXviewScanCode, setXviewTorch, xviewScanCode } from '@/uni_modules/xview-scancode'

// 单次扫码
xviewScanCode({
  mode: 'once',
  scanTypes: ['qrCode', 'barCode'],
  success: (res) => console.log(res.latest)
})

// 持续扫码
xviewScanCode({
  mode: 'continuous',
  maxCount: 5,
  autoStop: false,
  success: (res) => console.log(res.codes)
})
// closeXviewScanCode() 停止

// 内容解析(不调相机)
const item = parseXviewScanCode({ rawValue: 'tel:1388********', format: 'QR_CODE' })

多码识别

预览层点选(Android / iOS):传入 multiSelectStyle,同屏 2 个及以上码时显示绿点,轻触返回对应 latest

一次返回全部outputAllCodeData: true,由业务页自行选择。

API

API 说明
xviewScanCode(options) 调起扫码,回调方式
xviewScanCodeAsync(options) 调起扫码,返回 Promise<XviewScanCodeResult>
closeXviewScanCode() 停止持续扫码
parseXviewScanCode(options) 解析已有内容,不调相机
setXviewTorch(options) 控制手电筒
getXviewScanCodePlatformInfo() 查询当前平台能力

xviewScanCode / xviewScanCodeAsync options

参数 类型 默认值 说明
mode 'once' \| 'continuous' 'once' 单次或持续扫码
onlyFromCamera boolean true 是否仅相机;false 时部分平台支持相册/图片
scanTypes Array<'qrCode' \| 'barCode' \| 'datamatrix' \| 'pdf417'> 全部 识别码制
autoDecodeCharset boolean 自动识别字符编码
autoZoom boolean 自动缩放
torch boolean 手电筒初始状态
playSound boolean 识别成功是否播放提示音
vibrate boolean 识别成功是否震动
allowMultiple boolean continuous true / once false 是否累计多码
outputAllCodeData boolean false 一次返回同帧全部码,跳过预览层点选
multiSelectStyle XviewScanMultiSelectStyle 多码预览层点选样式
maxCount number 0 持续扫码最大累计数,0 不限制
continuousInterval number 350 持续扫码间隔,单位 ms
autoStop boolean once true / continuous false 成功后是否自动停止
viewStyle XviewScanViewStyle 原生预览页样式
success / fail / complete function xviewScanCode 支持

viewStyle

参数 类型 说明
frameWidthRatio number 取景框宽度比例,0.1–1
frameHeightRatio number 取景框高度比例,0.1–1
frameBorderColor string 边框颜色
frameBorderWidth number 边框宽度,px
frameStyle 'border' \| 'corner' 边框样式,默认 border
maskColor string 遮罩颜色
maskOpacity number 遮罩透明度,0–1
hintText string 提示文案
hintColor string 提示文字颜色
hintTextSize number 提示字号,px
hintPosition 'center' \| 'belowFrame' 提示位置,默认 center
showScanLine boolean 是否显示扫描线
scanLineMode 'line' \| 'dotGrid' \| 'fullScreen' 扫描动画样式
scanLine XviewScanLineStyle 扫描线样式,见下表

scanLine / multiSelectStyle

scanLine

参数 类型 说明
color string 颜色,支持 #RRGGBB / #AARRGGBB
height number 高度,px
radius number 圆角,px
duration number 动画时长,ms

multiSelectStyle

参数 类型 说明
enabled boolean 是否启用预览层点选
promptText string 底部提示文案
promptTextColor string 提示文字颜色
promptTextSize number 提示字号,px
buttonColor string 绿点按钮颜色
buttonIconColor string 按钮箭头颜色
buttonSize number 按钮直径,px
navigationTitle string 顶部标题,默认「扫码」
cancelText string 取消按钮文案,默认「取消」
promptVisibleWhenSingle boolean 单码时是否显示提示,默认 false

返回值 XviewScanCodeResult

字段 类型 说明
isContinuous boolean 是否持续扫码模式
isFinished boolean 是否已达停止条件
codes Array<XviewScanCodeItem> 累计识别结果
latest XviewScanCodeItem 本次最新结果

XviewScanCodeItem 字段:rawValueformatcodeTypevaluetitlecharSetpathrect?

parseXviewScanCode options

参数 类型 必填 说明
rawValue string 原始扫码内容
format XviewScanCodeFormat 码格式,默认按 TEXT 处理
charSet string 字符集
path string 小程序码 path

setXviewTorch options

参数 类型 必填 说明
enabled boolean true 打开,false 关闭

返回 XviewTorchResultenabledsupportedmessage

错误码

errCode 说明
9030001 平台不支持
9030002 参数错误
9030003 扫码失败或取消
9030004 手电筒控制失败
9030005 当前已有扫码任务
9030006 扫码内容为空

示例

  • uni-app:pages/scancode/*
  • uni-app x:pagesx/scancode/*
  • pages.json 通过 #ifdef UNI-APP-X 分端注册

隐私、权限声明

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

Android/iOS/HarmonyOS/Web/微信小程序需要相机权限;Android/iOS 独立手电筒控制会使用摄像头闪光灯能力。Web 端图片识别会触发浏览器文件选择。

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

插件不采集任何数据

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