Skip to content

Scan 扫码

查看 sn-scan 的 2.0 版本差异

基础用法

  • 基于 sn-e-scan-provider 扩展插件重构的一体化扫码组件,内置扫码界面(导航栏、扫描线动效、提示文字、手电筒、相册入口、识别点),支持二维码 / 条码识别
  • 当前仅在 App-Android 端渲染与生效,其余平台渲染为空视图
  • 应将本组件放置在独立页面中,template 下只放这一个组件,并设置其 flex: 1
  • 支持双击还原缩放、双指捏合缩放、相册图片识别、只扫一次与连续扫描等能力
vue
<template>
	<sn-scan />
</template>

更多演示请下载 demo 查看

属性

参数说明类型默认值可选值
title扫码页面标题String扫一扫-
titleSize标题字体大小,留空按 18 × fontsizeFactor 计算String | Number--
titleColor标题颜色String#fff-
tip扫码提示文字;留空时按 scanType 自动显示(二维码 / 条码 / 二维码或条码)String--
tipColor提示文字颜色,留空跟随 titleColorString--
tipSize提示文字字体大小,留空按 14 × fontsizeFactor 计算String | Number--
torchText手电筒提示文字String轻触点亮或关闭-
torchTextColor手电筒提示文字颜色String#fff-
torchTextSize手电筒提示文字字体大小,留空按 12 × fontsizeFactor 计算String | Number--
dotSize识别点大小String | Number35px-
scanType扫码类型SnScanTypeallqrcode | barcode | all
lineAniTime扫描线动画时长(单位:ms)String | Number5000ms-
enableDing是否开启识别成功声音提示Booleantruetrue | false
dingFileSrc自定义提示声音文件路径String--
scanOnlyOnce是否只扫描一次(与 continuous 不可同为 trueBooleanfalsetrue | false
continuous是否连续扫描(与 scanOnlyOnce 不可同为 trueBooleanfalsetrue | false
continuousSleep连续扫描间隔时间(单位:ms)Number2000-
showTorch是否显示手电筒按钮Booleantruetrue | false
showAlbum是否显示相册按钮Booleantruetrue | false
showBackButton是否显示返回按钮Booleantruetrue | false
showAni是否显示扫描线动效Booleantruetrue | false
enableZoom是否允许手势缩放Booleantruetrue | false
initZoomScale初始缩放比例Number0-
cameraPermTip相机权限请求提示文案String相机权限默认文案-
albumPermTip相册权限请求提示文案String相册权限默认文案-
customDotStyle自定义识别点样式UTSJSONObject | String--
customDotIconStyle自定义识别点图标样式UTSJSONObject | String--
customTitleStyle自定义标题样式UTSJSONObject | String--
customTipStyle自定义提示文字样式UTSJSONObject | String--
customStyle自定义组件根节点样式UTSJSONObject | String--
customClass自定义组件根节点类名String--

事件

名称类型说明
button-click(name: string) => Void点击界面按钮时触发,name 可选值为 return(返回)、album(相册)、torch(手电筒)
scanned(res: SnScanResult) => Void扫码成功时触发,结构见下方类型
goin(value: string) => Void选择识别点时触发,value 为识别的文本数据

方法

名称参数返回值描述
rescan--重新开始扫描
setTorchStatus(value: boolean)-设置手电筒开关状态
scanImageByURI(src: string)-通过图片 URI 识别图片中的码
setZoomRatio(zoomRatio: number)-设置相机缩放比例
getZoomRatio-number获取当前相机缩放比例

类型

扫码类型。

可选值备注
qrcode二维码
barcode一维码
all两者均可识别

扫码来源模式。

可选值备注
camera相机扫码
image相册图片识别
名称类型必填描述
centerXnumber识别点在源图中的横向坐标
centerYnumber识别点在源图中的纵向坐标
名称类型必填描述
valuestring识别出的文本数据
positionSnScanDataPosition识别点位置
名称类型必填描述
dataSnScanData[]识别出的数据列表
scanModeSnScanMode识别来源:camera 相机 | image 相册图片
sourceWidthnumber可选,识别源图宽度
sourceHeightnumber可选,识别源图高度

SnScanTypeSnScanResult 等类型由扩展插件 sn-e-scan-provider 导出;SnScanParams 为传参参数类型,由 SinleUI 框架导出(结构同上方属性表)。

使用 MIT 协议