更新记录
1.0.3(2026-09-24) 下载此版本
- 重构并适配 Vapor 模式
1.0.2(2024-11-10) 下载此版本
- 修复
sn-e-scankit多页面调用scan方法回调函数混淆的问题
1.0.1(2024-10-05) 下载此版本
- 新增
sn-e-scankit-code华为码图组件,具体文档见:ScanKit Code 华为码图
平台兼容性
uni-app x(5.23)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 6.0 | × | × | × |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 蒸汽模式 |
|---|---|---|---|
| √ | √ | √ | √ |
sn-e-scankit
SinleUI 扩展插件,基于华为统一扫码服务(Scan Kit)封装,当前支持 Android 平台。
包含两部分能力:
- 扫码 API
scan:调用华为 Scan Kit 的 Default View Mode,弹出华为提供的标准全屏扫码界面(支持相机扫码与导入图片扫码),扫完通过回调返回码值。 - 码图生成组件
sn-e-scankit-code:基于ScanUtil.buildBitmap将字符串转换为一维码/二维码(EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF14、QR、DataMatrix、PDF417、Aztec),组件按自身尺寸实时生成码图,支持自定义前后景色、容错级别与 QR 中部 Logo。
环境要求
- HBuilderX 5.21+,uni-app x 蒸汽模式项目。
- 插件已通过
utssdk/app-android/config.json声明依赖com.huawei.hms:scanplus:2.12.0.301与华为 maven 仓https://developer.huawei.com/repo/(HBuilderX 4.36+ 支持repositories字段),编译自定义基座时需保证网络可访问该仓库。 - 依赖变更需重新打包自定义基座后生效(Kotlin 混编部分无需重打)。
- Scan Kit 不强制要求 agconnect-services.json;仅当应用在 AppGallery Connect 开通了相关服务并已放置该文件时,才需要在工程中额外配置 AGC 插件(config.json 的
project.plugins白名单支持com.huawei.agconnect)。 - 华为官方提示:使用 Default View Mode 请确保应用未关闭硬件加速(
hardwareAccelerated为true),否则个别机型扫码界面可能黑屏。
扫码 API
import { scan } from '@/uni_modules/sn-e-scankit'
import type { ScanResult } from '@/uni_modules/sn-e-scankit'
scan({}, (res: ScanResult) => {
console.log(res.format, res.data)
})
scan(configs, callback):configs 为 UTSJSONObject(vapor 模式下 JS 侧向 UTS 插件传类型化对象会被桥接降级,故插件内部手动解析字段):
| 属性 | 类型 | 说明 |
|---|---|---|
| configs.scanTypes | string 数组 | 需要识别的码制式('QRCODE' / 'EAN_13' 等),缺省或空数组时识别全部 14 种码 |
| configs.titleType | number | 扫码界面标题:0 = “扫描二维码/条码”,1 = “扫描二维码” |
| configs.permTip | string | 权限申请弹窗提示语,仅在权限未授予时弹出 |
| callback | (res: ScanResult) => void | 扫码结果回调,format 为码值类型(text/url/telephone 等),data 为码值字符串 |
相机权限由插件负责申请:未授权时先弹出说明弹窗,确认后请求系统权限;拒绝后跳转系统权限设置页。
组件 sn-e-scankit-code
easycom 直接使用,需给组件显式设置宽高:
<sn-e-scankit-code data="https://sinleui.pages.dev" type="QRCODE"
style="width: 200px;height: 200px;"></sn-e-scankit-code>
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| data | string | '' | 需要编码的数据 |
| type | ScanType | 'QRCODE' | 码图类型(MULTI_FUNCTIONAL 仅用于扫码识别,生成码图无效) |
| margin | number | 1 | 码图边框宽度 |
| bgColor | string | '#ffffff' | 码图背景色 |
| frontColor | string | '#000000' | 码图前景色 |
| qrErrorLevel | 'L' | 'M' | 'Q' | 'H' | 'M' | QR 码容错级别 |
| qrLogo | string.ImageURIString | '' | QR 码中部 Logo 图片路径(支持项目内路径 / 绝对路径 / file://) |
| customStyle | UTSJSONObject | string | '' | 根节点样式 |
| customClass | string.ClassString | '' | 根节点外部样式类 |
组件基于 native-view 绑定原生 ImageView,跟随组件尺寸变化自动重新生成码图;也可通过 defineExpose 暴露的 refresh() 手动触发重新生成。
Web 端不包含生成能力,组件渲染为空节点,请使用 sn-qrcode / sn-barcode 代替。
目录结构
sn-e-scankit
├─components
│ └─sn-e-scankit-code
│ └─sn-e-scankit-code.uvue
├─utssdk
│ ├─interface.uts
│ ├─index.uts
│ └─app-android
│ ├─AndroidManifest.xml
│ ├─config.json
│ ├─index.uts
│ ├─scankit.kt
│ └─coder.kt
├─changelog.md
├─package.json
└─readme.md

收藏人数:
下载插件并导入HBuilder
赞赏(0)
下载 1791
赞赏 1
下载 12738540
赞赏 1959
赞赏
京公网安备:11010802035340号