更新记录
1.0.0(2026-02-05)
v1.0.0
平台兼容性
uni-app(4.51)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
× |
× |
√ |
√ |
√ |
√ |
× |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| × |
× |
× |
× |
× |
× |
× |
× |
× |
- |
× |
× |
uni-app x(4.73)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| × |
× |
√ |
√ |
× |
× |
ainuo-hwscankit
基于华为 Scan Kit 的商业级扫码和二维码生成 UTS 插件,安卓与ios ui 已高度统一。
平台支持
安装
将插件导入到 uni_modules 目录即可使用。
快速开始
import { scan, createQRCode, createBarcode } from "@/uni_modules/ainuo-hwscankit"
API 文档
scan(options)
启动扫码功能。
参数
| 属性 |
类型 |
必填 |
默认值 |
说明 |
| scanType |
string |
否 |
'ALL_TYPES' |
要识别的码类型 |
| mode |
string |
否 |
'single' |
扫码模式 |
| success |
function |
否 |
- |
扫码成功回调 |
| fail |
function |
否 |
- |
扫码失败回调 |
scanType 可选值
| 值 |
说明 |
| ALL_TYPES |
识别所有类型的码 |
| QR_TYPES |
仅识别二维码(QR_CODE、AZTEC、DATA_MATRIX、PDF417) |
| BARCODE_TYPES |
仅识别条形码(CODE_128、CODE_39、EAN_13 等) |
mode 可选值
| 值 |
说明 |
| single |
单次扫码,扫到一个码后自动关闭 |
| continuous |
连续扫码,可连续扫描多个码,可用onScanned监听新识别的二维码 |
| multi |
多码扫描,同时识别画面中的多个码 |
示例
// 单次扫码
scan({
mode: 'single',
success: (result) => {
console.log('扫码结果:', result.originalValue)
console.log('码类型:', result.scanType)
},
fail: (error) => {
console.error('扫码失败:', error.errorMessage)
}
})
// 连续扫码
scan({
mode: 'continuous',
success: (result) => {
// 扫码结束,获取所有结果
console.log('所有结果:', result.results)
console.log('总数:', result.totalCount)
}
})
onScanned((result)=>{
console.log(result)
})
// 多码扫描
scan({
mode: 'multi',
success: (result) => {
console.log('确认的结果:', result)
}
})
createQRCode(options)
生成二维码(异步)。
参数
| 属性 |
类型 |
必填 |
默认值 |
说明 |
| content |
string |
是 |
- |
二维码内容 |
| size |
number |
是 |
- |
二维码尺寸(宽高相同,单位:像素) |
| options |
object |
否 |
- |
生成选项 |
| success |
function |
否 |
- |
成功回调 |
| fail |
function |
否 |
- |
失败回调 |
options 参数
| 属性 |
类型 |
必填 |
默认值 |
说明 |
| codeColor |
string |
否 |
'#000000' |
二维码颜色(十六进制) |
| backgroundColor |
string |
否 |
'#FFFFFF' |
背景颜色(十六进制) |
| margin |
number |
否 |
1 |
边距(像素) |
| logoBase64 |
string |
否 |
- |
Logo 图片的 base64 字符串 |
| logoScale |
number |
否 |
0.2 |
Logo 占二维码的比例(0.0 - 0.3) |
成功回调返回值
| 属性 |
类型 |
说明 |
| base64 |
string |
生成的二维码 base64 字符串 |
| width |
number |
二维码宽度 |
| height |
number |
二维码高度 |
示例
// 基础用法
createQRCode({
content: 'https://example.com',
size: 300,
success: (result) => {
// 显示二维码
imageElement.src = 'data:image/png;base64,' + result.base64
}
})
// 自定义样式
createQRCode({
content: 'https://example.com',
size: 300,
options: {
codeColor: '#1890ff',
backgroundColor: '#f0f0f0',
margin: 2
},
success: (result) => {
console.log('尺寸:', result.width, 'x', result.height)
}
})
// 带 Logo
createQRCode({
content: 'https://example.com',
size: 300,
options: {
logoBase64: 'iVBORw0KGgoAAAANSUhEUgAAAAo...', // Logo 的 base64
logoScale: 0.2
},
success: (result) => {
imageElement.src = 'data:image/png;base64,' + result.base64
}
})
createBarcode(options)
生成条形码(异步)。
参数
| 属性 |
类型 |
必填 |
默认值 |
说明 |
| content |
string |
是 |
- |
条形码内容 |
| width |
number |
是 |
- |
条形码宽度(像素) |
| height |
number |
是 |
- |
条形码高度(像素) |
| barcodeType |
string |
否 |
'CODE_128' |
条形码类型 |
| options |
object |
否 |
- |
生成选项(同 createQRCode) |
| success |
function |
否 |
- |
成功回调 |
| fail |
function |
否 |
- |
失败回调 |
barcodeType 可选值
| 值 |
说明 |
| CODE_128 |
Code 128 条形码 |
| CODE_39 |
Code 39 条形码 |
| CODE_93 |
Code 93 条形码 |
| CODABAR |
Codabar 条形码 |
| EAN_13 |
EAN-13 条形码(13位数字) |
| EAN_8 |
EAN-8 条形码(8位数字) |
| ITF_14 |
ITF-14 条形码 |
| UPC_A |
UPC-A 条形码(12位数字) |
| UPC_E |
UPC-E 条形码 |
示例
// CODE_128 条形码
createBarcode({
content: '1234567890',
width: 400,
height: 150,
barcodeType: 'CODE_128',
success: (result) => {
imageElement.src = 'data:image/png;base64,' + result.base64
}
})
// EAN-13 条形码
createBarcode({
content: '6901234567890',
width: 400,
height: 150,
barcodeType: 'EAN_13',
success: (result) => {
console.log('生成成功')
},
fail: (error) => {
console.error('生成失败:', error.errorMessage)
}
})
支持的码类型
| 类型 |
说明 |
分类 |
| QR_CODE |
二维码 |
二维码 |
| AZTEC |
Aztec 码 |
二维码 |
| DATA_MATRIX |
Data Matrix 码 |
二维码 |
| PDF417 |
PDF417 码 |
二维码 |
| CODE_128 |
Code 128 条形码 |
条形码 |
| CODE_39 |
Code 39 条形码 |
条形码 |
| CODE_93 |
Code 93 条形码 |
条形码 |
| CODABAR |
Codabar 条形码 |
条形码 |
| EAN_13 |
EAN-13 条形码 |
条形码 |
| EAN_8 |
EAN-8 条形码 |
条形码 |
| ITF_14 |
ITF-14 条形码 |
条形码 |
| UPC_A |
UPC-A 条形码 |
条形码 |
| UPC_E |
UPC-E 条形码 |
条形码 |
注意事项
- 权限:插件会自动请求相机权限,无需手动处理
- Logo 尺寸:
logoScale 建议不超过 0.3,过大会影响二维码识别
- 条形码内容:不同类型的条形码对内容有特定要求(如 EAN-13 需要13位数字)
- Base64 格式:
logoBase64 支持带或不带 data:image/xxx;base64, 前缀
更新日志
查看 changelog.md