更新记录

1.0.4(2024-10-28)

优化部分bug

1.0.3(2024-10-18)

优化uniapp 首次启动问题

1.0.2(2024-10-06)

兼容vue2,将回调函数complete: (res? : string)改成complete: (res : any)

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.0,Android:5.0,iOS:不确定,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

示例使用

点击右边“使用HBuilderX导入示例项目”,导入后示例中有个PDF文件,按照文件运行项目。

平台兼容性

目前支持Android,CPU类型支持x86,arm64-v8a,armeabi-v7a android目前适配到API 34

插件功能

  • 同时扫多个二维码和条形码

  • 配置相册

  • 闪光灯

  • 相机可以调整焦距放大缩小

  • 支持自定义扫描线颜色、提示文案等

  • 支持扫描完成提示音、震动

  • 支持码内容解析(WIFI信息,位置信息,联系人信息邮件信息,短信信息等等)

  • 功能持续完善中...

插件使用及相关API说明

在线使用插件通用流程

  1. 购买此插件,选择该插件绑定的项目(使用者项目)。

  2. 购买页面导入到相应项目。

  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。

  4. 打包自定义基座,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

  5. 开发完毕后正式云打包。

此插件的使用

引入插件

import {ScanOptions,scanBarCode } from "@/uni_modules/xt-barcode-scan"

使用插件

uniapp x 版本 :
let options = {
        params: `{
            'showVibrate': true,
            'showBeep': true,
            'showPhotoAlbum': true,
            'showLightController': true,
            'supportZoom': true,
            'scanColor': '#ff0000',
            'hintText': '扫二维码/条形码',
            'hintTextColor': '#ffffff',
            'hintTextSize': '14',
            'useScanStarPoint':false,
            'lightOnHintText':'请打开手电筒1',
            'lightOffHintText':'请关闭手电筒1',
            'starPointScanLineColumn':30,
            'starPointScanLineHeight':300,
            'fullScreenScan':true
        }`,
        complete: (res : any) => {
            console.log(res)
        let strR:string = res.toString();
            //使用JSON进行解析参数
        }
    } as ScanOptions;
    scanBarCode(options);

uniapp 版本:
import {ScanOptions,scanBarCode } from "@/uni_modules/xt-barcode-scan"  

scanBarCode({  
    params: '{"showVibrate": true,"showBeep": true,"showPhotoAlbum": true,"showLightController": true,"supportZoom": true,"scanColor": "#ff0000","fullScreenScan":true}',  
    complete: (res) => {  
        console.log(res);  
    }  
});
参数说明
参数名 参数类型 参数默认值 参数说明
showVibrate Boolean False 是否需要扫码完成时震动
showBeep Boolean True 是否需要扫码完成时发出Beep音
showPhotoAlbum Boolean True 是否支持相册选取扫码照片
showLightController Boolean True 是否显示手电筒按钮
supportZoom Boolean False 是否支持相机可以调整焦距放大缩小
scanColor String "#FF0000" 设置扫描线颜色
hintText String "请扫二维码/条形码" 设置扫码文案
hintTextColor String "#FF0000" 设置提示文案颜色
hintTextSize Integer 14 调整提示文案字体大小
useScanStarPoint Boolean True 扫描界面,True:星点闪烁 False:扫描线
starPointScanLineColumn Integer 30 星点列数
starPointScanLineHeight Integer 300 星点高度
fullScreenScan Boolean False 是否全屏扫描
lightOnHintText String "打开闪光灯" 手电筒开状态文案
lightOffHintText String "关闭闪光灯" 手电筒关状态文案
回调结果说明
回调结果是一个JSON格式数据,包含两个属性
属性名 属性类型 说明
statusCode String 成功为"success",其他为失败
scanResults String 只有成功时才有值
scanResults说明(JSON数据,包含两个属性)
属性名 属性类型 说明
codeType Integer 码类型
codeValue String 码内容
valueType Integer 码的值类型,是WIFI,GPS,联系人,短信等等,可用于处理具体业务
UNKNOWN = 0;
CONTACT_INFO = 1;
EMAIL = 2;
ISBN = 3;
PHONE = 4;
PRODUCT = 5;
SMS = 6;
TEXT = 7;
URL = 8;
WIFI = 9;
GEO = 10;
CALENDAR_EVENT = 11;
DRIVER_LICENSE = 12;
valueDetail JSON 值详情
UNKNOWN = 0;
CONTACT_INFO = 1(name ,phones);
EMAIL = 2;(address,body,subject,emailType)
ISBN = 3;
PHONE = 4;
PRODUCT = 5;
SMS = 6;(message,phoneNumber)
TEXT = 7;
URL = 8;(title,url)
WIFI = 9; (ssid,password,type)
GEO = 10;(lat,lng)
CALENDAR_EVENT = 11;(start,end,description,location,organizer,eventStatus,summary)
time (day,hours,minutes,year,month,seconds,isUtc)
DRIVER_LICENSE = 12(addressCity,addressStreet,addressZip,birthDate,documentType,expiryDate,firstName,
middleName,lastName,gender,issueDate,issuingCountry,licenseNumber);
codeType说明
    FORMAT_UNKNOWN = -1;                             未知
    FORMAT_ALL_FORMATS = 0;                          所有类型
    FORMAT_CODE_128 = 1;                               Code 128
    FORMAT_CODE_39 = 2;                                Code 39
    FORMAT_CODE_93 = 4;                                Code 93
    FORMAT_CODABAR = 8;                              Codabar
    FORMAT_DATA_MATRIX = 16;                       Data Matrix
    FORMAT_EAN_13 = 32;                                EAN-13
    FORMAT_EAN_8 = 64;                                 EAN-8
    FORMAT_ITF = 128;                                    ITF
    FORMAT_QR_CODE = 256;                           QR Code(二维码)
    FORMAT_UPC_A = 512;                               UPC-A
    FORMAT_UPC_E = 1024;                              UPC-E
    FORMAT_PDF417 = 2048;                            PDF417
    FORMAT_AZTEC = 4096;                             Aztec
返回示例
{
    "statusCode": "success",
    "scanResults": "[\"{\\\"valueType\\\":8,\\\"valueDetail\\\":{\\\"title\\\":\\\"\\\",\\\"url\\\":\\\"http:\\\\\\/\\\\\\/wx.lenovo.cn\\\\\\/s=20TJS2NN2RR913QE6C_thinkpadr\\\"},\\\"codeType\\\":8,\\\"codeValue\\\":\\\"http:\\\\\\/\\\\\\/wx.lenovo.cn\\\\\\/s=20TJS2NN2RR913QE6C_thinkpadr\\\"}\"]"
}

扫描界面

全屏扫描

非全屏扫描-线条

非全屏扫描-星点

隐私、权限声明

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

<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

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

没有数据发服务器,本地处理

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

无广告

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