更新记录
0.2.5(2025-06-17)
0.2.4(2025-06-14)
0.2.3(2025-06-14)
查看更多
平台兼容性
云端兼容性
uni-app(4.34)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
√ |
√ |
√ |
√ |
5.0 |
√ |
√ |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- |
- |
uni-app x(4.61)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
√ |
√ |
5.0 |
√ |
√ |
√ |
lime-scan
lime-scan 华为统一扫码(ScanKit)插件,只支持单码模式,兼容安卓/ios/鸿蒙/H5。
安装
在插件市场导入后,引入插件在页面上再自定义基座后使用。
基础使用
TypeScript环境(包含UTS)
<view style="padding: 30rpx 0;">扫描结果:{{result}}</view>
<button type="primary" @click="scan">开启扫描</button>
import {scanCode, type ScanCodeOption} from '@/uni_modules/lime-scan';
export default {
data() {
return {
type: '',
result: '',
}
},
methods:{
scan() {
scanCode({
success: (res)=> {
this.result = res.result
console.log('res', res.scanType)
}
} as ScanCodeOption)
}
}
}
非TypeScript环境
在非TS环境(JavaScript)中使用时,不需要引入类型定义,可以直接使用:
import {scanCode} from '@/uni_modules/lime-scan';
export default {
data() {
return {
type: '',
result: '',
}
},
methods:{
scan() {
scanCode({
success: (res)=> {
this.result = res.result
console.log('res', res.scanType)
}
})
}
}
}
示例代码
扫码示例
import {scanCode, type ScanCodeOption} from '@/uni_modules/lime-scan';
// 基础扫码
scanCode({
success: (res) => {
console.log('扫码结果:', res.result);
console.log('码类型:', res.scanType);
}
} as ScanCodeOption);
// 指定扫码类型
scanCode({
scanType: ['qrCode', 'barCode'], // 只扫描二维码和条形码
onlyFromCamera: true, // 只允许相机扫码
success: (res) => {
console.log('扫码结果:', res.result);
},
fail: (res) => {
console.log('扫码失败:', res.errMsg);
}
} as ScanCodeOption);
生成二维码示例
import { createQRCode, type CreateQRCodeOptions } from '@/uni_modules/lime-scan';
createQRCode({
width: 300,
height: 300,
content: 'limeui.qcoon.cn',
success(src: string) {
console.log('二维码图片地址:', src);
},
fail(error: string) {
console.log('生成失败:', error);
}
} as CreateQRCodeOptions);
H5端使用
H5端使用了@zxing/library
实现,这个库识别率一般般,可以扫二维码,条形码。
- 1、移动端访问摄像头权限需要 https 协议
- 2、上传图片解码 带logo的码 识别不了,扫码可以。
由于需要https
协议, 本地开发时, vite 可以安装@vitejs/plugin-basic-ssl
并配置https
协议
pnpm i @vitejs/plugin-basic-ssl -D
vite.config.ts中配置
import basicSsl from '@vitejs/plugin-basic-ssl'
import uni from '@dcloudio/vite-plugin-uni';
import { defineConfig } from 'vite';
export default defineConfig({
server: {
https: true
},
plugins: [ basicSsl(), uni()]
})
类型定义
ScanType 支持的扫码类型
值 |
说明 |
QR_CODE |
二维码 |
AZTEC |
一维码 |
CODABAR |
一维码 |
CODE_39 |
一维码 |
CODE_93 |
一维码 |
CODE_128 |
一维码 |
DATA_MATRIX |
二维码 |
EAN_8 |
一维码 |
EAN_13 |
一维码 |
ITF |
一维码 |
MAXICODE |
一维码 |
PDF_417 |
二维码 |
RSS_14 |
一维码 |
RSS_EXPANDED |
一维码 |
UPC_A |
一维码 |
UPC_E |
一维码 |
UPC_EAN_EXTENSION |
一维码 |
WX_CODE |
二维码 |
CODE_25 |
一维码 |
ScanFormatTypeCode 扫码类型选项
值 |
说明 |
barCode |
一维码 |
qrCode |
二维码 |
datamatrix/dataMatrix |
Data Matrix 码 |
pdf417 |
PDF417 条码 |
codabar |
Codabar 码 |
code39 |
Code 39 码 |
code93 |
Code 93 码 |
code128 |
Code 128 码 |
ean8 |
EAN-8 码 |
ean13 |
EAN-13 码 |
itf |
ITF 码 |
upcA |
UPC-A 码 |
upcE |
UPC-E 码 |
aztec |
Aztec 码 |
API 参考
scanCode(options: ScanCodeOption)
启动扫码功能
ScanCodeOption 参数说明
参数 |
类型 |
必填 |
说明 |
success |
(result: ScanCodeSuccessCallbackResult) => void |
否 |
接口调用成功的回调函数 |
fail |
(res: GeneralCallbackResult) => void |
否 |
接口调用失败的回调函数 |
complete |
(res: GeneralCallbackResult) => void |
否 |
接口调用结束的回调函数(调用成功、失败都会执行) |
scanType |
Array |
否 |
扫码类型 |
ScanCodeSuccessCallbackResult 返回参数说明
参数 |
类型 |
说明 |
result |
string |
所扫码的内容 |
scanType |
ScanType |
所扫码的类型 |
charSet |
string |
所扫码的字符集 |
path |
string |
当所扫的码为当前小程序二维码时,会返回此字段,内容为二维码携带的 path |
rawData |
string |
原始数据,base64编码 |
errMsg |
string |
错误信息 |
createQRCode(options: CreateQRCodeOptions)
生成二维码(仅APP端支持:ios、安卓)
CreateQRCodeOptions 参数说明
参数 |
类型 |
必填 |
说明 |
content |
string |
是 |
二维码内容 |
width |
number |
是 |
二维码宽度 |
height |
number |
是 |
二维码高度 |
success |
(result: string) => void |
否 |
接口调用成功的回调函数 |
fail |
(result: string) => void |
否 |
接口调用失败的回调函数 |
complete |
(result: string) => void |
否 |
接口调用结束的回调函数 |