Skip to content

LimeScan 扫码组件

一个基于华为统一扫码(ScanKit)的扫码插件,支持单码模式,兼容安卓、iOS、鸿蒙和H5平台。提供了扫描二维码、条形码等多种码制的功能,同时支持生成二维码。组件提供了简单易用的API,使开发者能够方便地在应用中集成扫码功能。

文档链接

📚 组件详细文档请访问以下站点:

安装方法

  1. 在uni-app插件市场入口 中搜索并导入lime-scan
  2. 导入后在页面引入相关方法
  3. 需要自定义基座才能使用

代码演示

基础用法

简单的扫码功能实现:

html
<view style="padding: 30rpx 0;">扫描结果:{{result}}</view>
<button type="primary" @click="scan">开启扫描</button>
ts
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.scanType)
                }
            } as ScanCodeOption)
        }
    }
}

生成二维码

在APP端生成二维码图片:

ts
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端使用说明

  1. 移动端访问摄像头权限需要 HTTPS 协议
  2. 上传图片解码时,带logo的码可能识别不了,但直接扫码可以

配置HTTPS开发环境

由于H5端需要HTTPS协议才能访问摄像头,本地开发时可以配置Vite的HTTPS支持:

bash
# 安装插件
pnpm i @vitejs/plugin-basic-ssl -D

在vite.config.ts中配置:

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()] 
})

快速预览

导入插件后,可以直接使用以下标签查看演示效果:

html
<!-- 代码位于 uni_modules/lime-scan/components/lime-scan -->
<lime-scan />

插件标签说明

标签名说明
l-scan组件标签
lime-scan演示标签

API文档

scanCode 方法

参数说明类型必填
options扫码选项ScanCodeOption

ScanCodeOption 选项

参数类型必填说明
scanTypeScanFormatTypeCode[]扫码类型,默认所有类型
onlyFromCameraboolean是否只使用相机扫码
success(result: ScanCodeSuccessCallbackResult) => void接口调用成功的回调函数
fail(res: GeneralCallbackResult) => void接口调用失败的回调函数
complete(res: GeneralCallbackResult) => void接口调用结束的回调函数

ScanCodeSuccessCallbackResult 返回参数

参数类型说明
resultstring所扫码的内容
scanTypeScanType所扫码的类型
charSetstring所扫码的字符集
pathstring当所扫的码为当前小程序二维码时,会返回此字段
rawDatastring原始数据,base64编码
errMsgstring错误信息

createQRCode 方法

参数说明类型必填
options生成二维码选项CreateQRCodeOptions

CreateQRCodeOptions 选项

参数类型必填说明
contentstring二维码内容
widthnumber二维码宽度
heightnumber二维码高度
success(result: string) => void接口调用成功的回调函数
fail(result: string) => void接口调用失败的回调函数
complete(result: string) => void接口调用结束的回调函数

支持的扫码类型

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/dataMatrixData Matrix 码
pdf417PDF417 条码
codabarCodabar 码
code39Code 39 码
code93Code 93 码
code128Code 128 码
ean8EAN-8 码
ean13EAN-13 码
itfITF 码
upcAUPC-A 码
upcEUPC-E 码
aztecAztec 码

功能特点

  • 支持多种码制的扫描,包括二维码、条形码等
  • 支持生成二维码功能(仅APP端)
  • 兼容安卓、iOS、鸿蒙和H5平台
  • 提供简单易用的API接口
  • H5端基于@zxing/library实现,无需额外配置
  • 支持指定扫码类型,提高识别效率

常见问题

  • H5端需要HTTPS协议才能访问摄像头
  • H5端识别带logo的二维码可能会有困难
  • APP端需要自定义基座才能使用
  • 生成二维码功能仅在APP端支持
  • 目前仅支持单码模式,不支持同时识别多个码

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助微信赞助

源代码

组件源码