Skip to content

Scan Provider 扫码核心

扩展插件

本组件属于扩展插件,SinleUI 框架内置的 sn-scan 组件依赖此组件,故 HBuilderX 安装 SinleUI 插件时会自动安装此组件,无需手动下载


  • 本组件是基于 Google MLKit 开发, SinleUI 扫码插件的核心部分,负责摄像头预览、扫码解析等基础工作,并向外部提供接口。
  • 如果你不满意内置的 sn-scan 的界面,可以参考 sn-scan 组件,对本组件进行再封装
  • 如果你希望使用更强大、更稳定的商用级的扫码功能,可以考虑接入华为的 ScanKit ,体验更好;或者 mPaaS 扫一扫,拥有与支付宝一致的扫码体验。
vue
<template>
	<sn-e-scan-provider></sn-e-scan-provider>
</template>

更多演示请下载 demo 查看

兼容性

WebAndroid
×

属性

参数说明类型默认值可选值
scanType扫码类型StringallqrCode | barCode | all
enableDing是否开启声音提示Booleantruetrue | false
enableZoom是否允许缩放Booleantruetrue |false
initZoomScale初始缩放比例Number0-
cameraPermTip相机权限请求提示String\u3000 本应用正在请求您的相机权限,仅用于条码、二维码识别,且不会将任何数据上传至云端。如不提供此权限,则无法正常使用扫码功能。-

方法

名称参数返回值描述
setTorchStatus(status : boolean)-设置手电筒开关状态
scanImageByURI(uri : string) -提供指定图片的 URI 来识别图片一/二维码码
rescan--扫描成功画面静止后使用此方法来重置摄像头
setZoomRatio(zoomRatio : number)-设置画面缩放比例,范围为 0 ~ 1
getZoomRatio-Number | null获取画面缩放比例

事件

名称类型说明
scanned(res: ScanResult) => void扫码成功时触发。res 的结构及说明见下文

类型

sn-e-scan-providersn-scan@scanned 事件返回一个 ScanResult 对象 res

typescript
type ScanMode = 'camera' | 'image'

type ScanDataPosition = {
	centerX: number,
	centerY: number
}

type ScanData = {
	value: string,
	position: ScanDataPosition
}

type ScanResult = {
	data: ScanData[],
	scanMode: ScanMode
}

ScanResult 及其相关的类型均在扩展插件 sn-e-scan-provider 导出,使用时根据路径导入即可。例如:

typescript
import { ScanResult } from "@/uni_modules/sn-e-scan-provider"

使用 MIT 协议