更新记录

0.2.5(2025-06-17)

  • fix: 修复uniapp报错

0.2.4(2025-06-14)

  • chore: 更新文档

0.2.3(2025-06-14)

  • chore: 更新文档
查看更多

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云
×

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 接口调用结束的回调函数

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问