更新记录
1.0.0(2024-09-17)
新增插件,新增17种码的扫码功能,支持闪光灯,扫码震动,扫码beep音,相册选取照片,扫码相机界面缩放功能的配置开关,支持多码扫码,支持扫码码文案及风格的配置,支持闪光灯文案的配置(国际化app可以通过文案配置实现)。支持扫码界面的配置(全屏和非全屏扫码,线条和星点闪烁)。
平台兼容性
Vue2 | Vue3 |
---|---|
× | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
Android:4.4,iOS:不支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
更新日志
版本:1.0.0
时间:9/5/2024 更新内容: 新增插件,新增17种码的扫码功能,支持闪光灯,扫码震动,扫码beep音,相册选取照片,扫码相机界面缩放功能的配置开关,支持多码扫码,支持扫码码文案及风格的配置,支持闪光灯文案的配置(国际化app可以通过文案配置实现)。支持扫码界面的配置(全屏和非全屏扫码,线条和星点闪烁)。
平台兼容性
目前支持Android,CPU类型支持x86,arm64-v8a,armeabi-v7a android目前适配到API 34
插件功能
-
同时扫多个二维码和条形码
-
配置相册
-
闪光灯
-
相机可以调整焦距放大缩小
-
支持自定义扫描线颜色、提示文案等
-
支持扫描完成提示音、震动
-
功能持续完善中...
插件使用及相关API说明
在线使用插件通用流程
-
购买此插件,选择该插件绑定的项目(使用者项目)。
-
购买页面导入到相应项目。
-
根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
-
打包自定义基座,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
-
开发完毕后正式云打包。
此插件的使用
引入插件
import {ScanOptions,scanBarCode } from "@/uni_modules/xt-barcode-scan"
使用插件
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 : string) => {
console.log(res);
try {
const jsonObject = JSON.parse(res) as UTSJSONObject;
console.log("statusCode:" + jsonObject["statusCode"]);
//扫码成功
if (jsonObject["statusCode"] == "success") {
console.log("scanResults:" + jsonObject["scanResults"]);
const codeString = jsonObject["scanResults"] as string;
//取得扫码结果数组,照片扫码有多个码,相机扫码结果只有一个,这里是取数组第一个码
const codeArray = JSON.parseArray(codeString!!);
console.log("scanResults code1:" + codeArray);
const targetBarcodeStr = codeArray![0] as string;
console.log("scanResults code2:" + targetBarcodeStr);
//将第一个码取出来转成JSON object
const targetBarcode = JSON.parse(targetBarcodeStr) as UTSJSONObject;
//取码内容,也可以取码类型
console.log("scanResults target code:" + targetBarcode["codeValue"]);
console.log("scanResults target code type:" + targetBarcode["codeType"]);
}
} catch (e) {
console.error('转换JSON时发生错误:', e);
}
}
} as ScanOptions;
scanBarCode(options);
参数说明
参数名 | 参数类型 | 参数默认值 | 参数说明 |
---|---|---|---|
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 | 码内容 |
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