373 lines
17 KiB
Markdown
373 lines
17 KiB
Markdown
# 插件使用说明文档
|
||
|
||
<font size="5" color="#f00">注意!</font>
|
||
|
||
<font size="3" color="#f00">插件需要打自定义基座运行!</font>
|
||
|
||
<font size="3" color="#f00">插件需要打自定义基座运行!</font>
|
||
|
||
<font size="3" color="#f00">插件需要打自定义基座运行!</font>
|
||
|
||
#### 插件说明
|
||
```
|
||
本插件是封装了谷歌mlkit条码识别功能,支持多种条码类型扫码,
|
||
识别速度和准确率杠杠的,可以支持多个二维码识别,识别成功会有提示音和震动效果,类似wx扫码。
|
||
```
|
||
|
||
<font size="3" color="#f00">IOS端注意!,不支持摄像头切换,用法参考后面的用例(扫码插件支持的ios版本是>=15.5)</font>
|
||
|
||
<font size="3" color="#f00">鸿蒙端注意:鸿蒙使用的是官方默认扫码界面UI,不支持自定义界面内容,只能单码识别,不支持连续扫码</font>
|
||
|
||
#### 扫码类型:支持文本、链接、电话、邮件、WIFI等通用类型条码
|
||
```
|
||
type CodeType = 'text'| 'url'| 'wifi'| 'phone'| 'sms'
|
||
| 'email'
|
||
| 'contact'
|
||
| 'geo'
|
||
| 'calendar'
|
||
| 'driverLicense'
|
||
| 'isbn'
|
||
| 'product';
|
||
```
|
||
#### 支持扫码格式列表,默认支持全部格式,可以设置单个或多个扫码格式类型,不设置默认是0,支持全部扫码格式
|
||
------------------
|
||
|
||
* 1----->FORMAT_CODE_128
|
||
* 2----->FORMAT_CODE_39
|
||
* 4----->FORMAT_CODE_93
|
||
* 8----->FORMAT_CODABAR
|
||
* 32---->FORMAT_EAN_13
|
||
* 64---->FORMAT_EAN_8)
|
||
* 128--> FORMAT_ITF) 二维码
|
||
* 256--> FORMAT_QR_CODE 二维码
|
||
* 512--->FORMAT_UPC_A
|
||
* 1024-->FORMAT_UPC_E
|
||
* 2048-->FORMAT_PDF417
|
||
* 16---->FORMAT_DATA_MATRIX
|
||
* 4096-->FORMAT_AZTEC
|
||
|
||
--------------
|
||
* 参数说明
|
||
|
||
| 属性 | 类型 | 默认值 | 必填 | 描述 |
|
||
|-- |-- |-- |-- |-- |
|
||
|cameraType |string |BACK |N |开启前置摄像头,不设置默认使用后置摄像头,当设备只有一个摄像头,该设置无效,会自动取可用列表的摄像头 |
|
||
|continuous |boolean |false |N |设为true即可开启连续扫码,默认不开启 |
|
||
|continuousDelay |number |800 |N |连续扫码场景,间隔时间 |
|
||
|autoZoom |boolean |false |N |开启相机自动缩放,默认不开启,只限非连续扫码模式下使用 |
|
||
|styleFollowIos |boolean |true |N |页面样式是否跟随IOS端,默认true全屏模式 |
|
||
|showLamplight |boolean |true |N |隐藏/显示灯光操作,默认显示 |
|
||
|showPhotoAlbum |boolean |true |N |隐藏/显示相册操作,默认显示 |
|
||
|scanBox |boolean |false |N |中间区域扫码模式,默认关闭,(注意:如果开启此模式,styleFollowIos必须配置且为false) |
|
||
|scanBoxTitle |string |'将码放入取景框,即可自动扫描' |N |中间区域扫码模式标题,只有scanBox为true生效 |
|
||
|scanBoxTitleColor |string |'#ffffff' |N |中间区域扫码模式标题颜色,只有scanBox为true生效 |
|
||
|scanBoxTitleSize |number |16 |N |中间区域扫码模式标题大小,只有scanBox为true生效 |
|
||
|scanBoxHeight |number |540 |N |中间区域扫码框的高度,只有scanBox为true生效 |
|
||
|formatsVal |string |'0' |N |设置扫码的制式,默认为'0',支持全部制式 |
|
||
|markeTitle |string |'#ffffff' |N |设置扫码页底部识别中的提示文字 |
|
||
|showToast |boolean |false |N |二维码识别成功显示toast(只针对连续扫码生效) |
|
||
|showToastText |string |'自定义扫码成功提示' |N |设置连续扫码场景成功提示语 |
|
||
|lightOnText |string |'灯光打开' |N |自定义打开灯光文案 |
|
||
|lightOffText |string |'灯光关闭' |N |自定义关闭灯光文案 |
|
||
|photoText |string |'自定义相册文字' |N |相册底部文案(只针对安卓不跟随IOS端界面样式有效) |
|
||
|moreQrCodeSelectText |string |'识别到多个二维码,请选择一个打开' |N |多个二维码选择提示文案 |
|
||
|moreQrCodeSelectTextColor |string |'#ffffff' |N |多个二维码选择提示文案颜色 |
|
||
|moreQrCodeSelectTextSize |number |16 |N |多个二维码选择提示文案大小 |
|
||
|outputAllCodeData |boolean |false |N |开启后,直接返回扫码数据,获取返回值内容需要取optionArr字段,默认关闭(只针对全屏扫码且非连续扫码有效) |
|
||
|customFailToatText|string|未识别到二维码|N|未识别到二维码时提示内容|
|
||
|
||
#### 识别成功回调参数说明
|
||
```html
|
||
CallbackValType:{
|
||
type --- 识别码内容类型 例如文本-text 链接-url 商品-product
|
||
option ----{
|
||
textVal?:string ------- 文本值
|
||
url?:string --------- 链接
|
||
phone?:string -------- 手机号
|
||
proNumber?:string ----- 商品编号
|
||
}
|
||
optionArr ---- 当初始化配置outputAllCodeData设置为true时,该字段才有值,内容字段和option字段一致
|
||
scanCodeType ----- 识别码为二维码/条形码 1- 二维码 2- 条形码 0- 未知 (当outputAllCodeData设置为true时,该字段会包含在optionArr的每个子项中)
|
||
}
|
||
```
|
||
|
||
------------
|
||
#### 页面调用插件方式
|
||
|
||
|
||
|
||
* uniapp的使用方式
|
||
|
||
```html
|
||
|
||
<template>
|
||
<view>
|
||
<button @click="openScan">打开扫码</button>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {openCamera,closeCamera,setContinuousScanStatus} from '@/uni_modules/xwq-mlkit-scan-code';
|
||
export default {
|
||
methods: {
|
||
openScan(){
|
||
openCamera({
|
||
cameraType:"FRONT",//开启前置摄像头,不设置默认使用后置摄像头,当设备只有一个摄像头,该设置无效,会自动取可用列表的摄像头
|
||
continuous:true,//设为true即可开启连续扫码,默认不开启
|
||
continuousDelay:2000,//连续扫码间隔时间
|
||
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
|
||
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
|
||
showLamplight:false,//隐藏灯光操作,默认显示
|
||
showPhotoAlbum:false,//隐藏相册操作,默认显示
|
||
scanBox:true, //中间区域扫码模式 (注意:如果开启此模式,styleFollowIos必须配置且为false)
|
||
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码模式标题,只有scanBox为true生效
|
||
scanBoxTitleColor:"#ff0000",//中间区域扫码模式标题颜色,只有scanBox为true生效
|
||
scanBoxTitleSize:16,//中间区域扫码模式标题大小,只有scanBox为true生效
|
||
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
|
||
formatsVal:'32,128,256', //扫码格式
|
||
markeTitle:'', //扫码页底部提示文字
|
||
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
|
||
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
|
||
customFailToatText:"自定义未识别到二维码信息", //未识别到二维码时提示内容
|
||
lightOnText:'灯光打开',//自定义打开灯光文案
|
||
lightOffText:'灯光关闭',//自定义关闭灯光文案
|
||
photoText: "自定义相册文字",//相册底部文案
|
||
moreQrCodeSelectText:"当前识别到多个二维码,请选择一个", //多个二维码选择提示文案
|
||
moreQrCodeSelectTextColor:"#ff0000", //多个二维码选择提示文案颜色
|
||
moreQrCodeSelectTextSize:18, //多个二维码选择提示文案大小
|
||
outputAllCodeData:false, //开启后,直接返回扫码数据,获取返回值内容需要取optionArr字段,默认关闭(只针对全屏扫码且非连续扫码有效)
|
||
success:(val)=>{
|
||
console.log('扫码结果回调===',val)
|
||
// 返回参数增加scanCodeType 识别码类型 1- 二维码 2- 条形码 0- 未知
|
||
//暂停扫码(针对连续扫码场景生效)
|
||
// setContinuousScanStatus(true)
|
||
|
||
// if(val.optionArr!=null&&val.optionArr!.length>0){
|
||
// val.optionArr?.forEach(item=>{
|
||
// result.value.push(item.textVal ?? '');
|
||
// })
|
||
// }else{
|
||
// result.value.push(val.option.textVal ?? '');
|
||
// }
|
||
|
||
// setTimeout(()=>{
|
||
//接口识别后,继续扫码
|
||
// setContinuousScanStatus(false)
|
||
// },5000)
|
||
},
|
||
error:(val) => {
|
||
console.log('识别失败===', val);
|
||
uni.showToast({
|
||
title:"没有识别到二维码"
|
||
})
|
||
},
|
||
cancel:()=>{
|
||
console.log('取消扫码')
|
||
}
|
||
});
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
```
|
||
|
||
* uniappX的使用方式
|
||
|
||
```html
|
||
|
||
<template>
|
||
<view>
|
||
<button @click="openScan">打开扫码</button>
|
||
</view>
|
||
</template>
|
||
|
||
<script lang='uts'>
|
||
import {openCamera,closeCamera,setContinuousScanStatus} from '@/uni_modules/xwq-mlkit-scan-code';
|
||
import { InitParamsType, CallbackValType,ErrorCallbackValType } from '@/uni_modules/xwq-mlkit-scan-code/utssdk/interface.uts';
|
||
export default {
|
||
data() {
|
||
return {}
|
||
},
|
||
methods: {
|
||
openScan(){
|
||
openCamera({
|
||
cameraType:"FRONT",//开启前置摄像头,不设置默认使用后置摄像头,当设备只有一个摄像头,该设置无效,会自动取可用列表的摄像头
|
||
continuous:true,//设为true即可开启连续扫码,默认不开启
|
||
continuousDelay:2000,//连续扫码间隔时间
|
||
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
|
||
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
|
||
showLamplight:false,//隐藏灯光操作,默认显示
|
||
showPhotoAlbum:false,//隐藏相册操作,默认显示
|
||
scanBox:true, //中间区域扫码模式 (注意:如果开启此模式,styleFollowIos必须配置且为false)
|
||
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码标题,只有scanBox为true生效
|
||
scanBoxTitleColor:"#ff0000",//中间区域扫码标题颜色,只有scanBox为true生效
|
||
scanBoxTitleSize:16,//中间区域扫码标题大小,只有scanBox为true生效
|
||
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
|
||
formatsVal:'32,128,256', //扫码格式
|
||
markeTitle:'', //扫码页底部提示文字
|
||
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
|
||
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
|
||
customFailToatText:"自定义未识别到二维码信息", //未识别到二维码时提示内容
|
||
lightOnText:'灯光打开',//自定义打开灯光文案
|
||
lightOffText:'灯光关闭',//自定义关闭灯光文案
|
||
photoText: "自定义相册文字",//相册底部文案
|
||
moreQrCodeSelectText:"当前识别到多个二维码,请选择一个", //多个二维码选择提示文案
|
||
moreQrCodeSelectTextColor:"#ff0000", //多个二维码选择提示文案颜色
|
||
moreQrCodeSelectTextSize:18, //多个二维码选择提示文案大小
|
||
outputAllCodeData:false, //开启后,直接返回扫码数据,获取返回值内容需要取optionArr字段,默认关闭(只针对全屏扫码且非连续扫码有效)
|
||
success:(val:CallbackValType)=>{
|
||
console.log('扫码结果回调===',val)
|
||
//暂停扫码(针对连续扫码场景生效)
|
||
// setContinuousScanStatus(true)
|
||
// 返回参数增加scanCodeType 识别码类型 1- 二维码 2- 条形码 0- 未知
|
||
// if(val.optionArr!=null&&val.optionArr!.length>0){
|
||
// val.optionArr?.forEach(item=>{
|
||
// result.value.push(item.textVal ?? '');
|
||
// })
|
||
// }else{
|
||
// result.value.push(val.option.textVal ?? '');
|
||
// }
|
||
|
||
// setTimeout(()=>{
|
||
//接口识别后,继续扫码
|
||
// setContinuousScanStatus(false)
|
||
// },5000)
|
||
},
|
||
error:(val : ErrorCallbackValType) => {
|
||
console.log('识别失败===', val);
|
||
uni.showToast({
|
||
title:"没有识别到二维码"
|
||
})
|
||
},
|
||
cancel:()=>{
|
||
console.log('取消扫码')
|
||
}
|
||
} as InitParamsType);
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
```
|
||
|
||
### IOS端UniappX项目中使用
|
||
```html
|
||
<template>
|
||
<view>
|
||
<button @click="openScan">打开扫码</button>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { openCamera,closeCamera,setContinuousScanStatus} from '@/uni_modules/xwq-mlkit-scan-code';
|
||
import { InitParamsType, CallbackValType,ErrorCallbackValType } from '@/uni_modules/xwq-mlkit-scan-code/utssdk/interface.uts';
|
||
const openScan = () => {
|
||
openCamera({
|
||
continuous:true,//设为true即可开启连续扫码,默认不开启
|
||
continuousDelay:2000,//连续扫码间隔时间
|
||
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
|
||
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
|
||
showLamplight:false,//隐藏灯光操作,默认显示
|
||
showPhotoAlbum:false,//隐藏相册操作,默认显示
|
||
formatsVal:'32,128,256', //扫码格式
|
||
scanBox:true, //中间区域扫码模式 (注意:如果开启此模式,styleFollowIos必须配置且为false)
|
||
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码标题,只有scanBox为true生效
|
||
scanBoxTitleColor:"#ff0000",//中间区域扫码标题颜色,只有scanBox为true生效
|
||
scanBoxTitleSize:16,//中间区域扫码标题大小,只有scanBox为true生效
|
||
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
|
||
markeTitle:'', //扫码页底部提示文字
|
||
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
|
||
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
|
||
customFailToatText:"自定义未识别到二维码信息", //未识别到二维码时提示内容
|
||
lightOnText:'灯光打开',//自定义打开灯光文案
|
||
lightOffText:'灯光关闭',//自定义关闭灯光文案
|
||
photoText: "自定义相册文字",//相册底部文案
|
||
moreQrCodeSelectText:"当前识别到多个二维码,请选择一个", //多个二维码选择提示文案
|
||
moreQrCodeSelectTextColor:"#ff0000", //多个二维码选择提示文案颜色
|
||
moreQrCodeSelectTextSize:18, //多个二维码选择提示文案大小
|
||
outputAllCodeData:false, //开启后,直接返回扫码数据,获取返回值内容需要取optionArr字段,默认关闭(只针对全屏扫码且非连续扫码有效)
|
||
success: (val : CallbackValType) => {
|
||
console.log('识别结果====', val)
|
||
//暂停扫码(针对连续扫码场景生效)
|
||
// setContinuousScanStatus(true)
|
||
// 返回参数增加scanCodeType 识别码类型 1- 二维码 2- 条形码 0- 未知
|
||
// if(val.optionArr!=null&&val.optionArr!.length>0){
|
||
// val.optionArr?.forEach(item=>{
|
||
// result.value.push(item.textVal ?? '');
|
||
// })
|
||
// }else{
|
||
// result.value.push(val.option.textVal ?? '');
|
||
// }
|
||
|
||
// setTimeout(()=>{
|
||
//接口识别后,继续扫码
|
||
// setContinuousScanStatus(false)
|
||
// },5000)
|
||
},
|
||
error:(val : ErrorCallbackValType) => {
|
||
console.log('识别失败===', val);
|
||
uni.showToast({
|
||
title:"没有识别到二维码"
|
||
})
|
||
},
|
||
cancel:()=>{
|
||
console.log('取消扫码')
|
||
}
|
||
} as InitParamsType);
|
||
|
||
};
|
||
</script>
|
||
|
||
```
|
||
|
||
|
||
### 在鸿蒙端使用用例(注意:鸿蒙使用的是官方默认扫码界面,不能自定义界面内容,只能单码识别,不支持连续扫码)
|
||
```html
|
||
<template>
|
||
<view>
|
||
<button @click="openScan">打开扫码</button>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { openCamera } from '@/uni_modules/xwq-mlkit-scan-code';
|
||
import { InitParamsType, CallbackValType,ErrorCallbackValType } from '@/uni_modules/xwq-mlkit-scan-code/utssdk/interface.uts';
|
||
const openScan = () => {
|
||
openCamera({
|
||
showPhotoAlbum:true,//相册入口是否开启
|
||
success: (val : CallbackValType) => {
|
||
console.log('识别结果====', val)
|
||
uni.showToast({
|
||
title:'识别成功'
|
||
})
|
||
},
|
||
error:(val : ErrorCallbackValType) => {
|
||
console.log('识别失败===', val);
|
||
uni.showToast({
|
||
title:"没有识别到二维码"
|
||
})
|
||
},
|
||
cancel:()=>{
|
||
console.log('取消扫码')
|
||
}
|
||
} as InitParamsType);
|
||
|
||
};
|
||
```
|
||
|
||
|
||
### 其他插件预览
|
||
|
||
[(兼容IOS、安卓、鸿蒙)二维码、条码识别,mlkit扫码插件 毫秒级识别效率,支持多码识别,连续扫](https://ext.dcloud.net.cn/plugin?id=17575)
|
||
[TTS(安卓、ios、鸿蒙、web)将文字转成语音播报](https://ext.dcloud.net.cn/plugin?id=21718)
|
||
[(兼容安卓、IOS端)离线语音识别插件、支持离线语音](https://ext.dcloud.net.cn/plugin?id=23397)
|
||
[(UNIAPPX原生播放器)仿抖音视频刷刷刷 刷视频 自动滑动视频,短剧刷视频必备神器](https://ext.dcloud.net.cn/plugin?id=24719)
|
||
[(安卓、IOS) PDF预览插件](https://ext.dcloud.net.cn/plugin?id=25438)
|
||
[(兼容安卓、鸿蒙端、iOS)onnx 大模型实时语音识别 wav音频文件转文本](https://ext.dcloud.net.cn/plugin?id=26641)
|
||
[(兼容安卓、鸿蒙)录音插件,支持pcm实时回调,wav转换,后台录音](https://ext.dcloud.net.cn/plugin?id=26890)
|
||
[(nvue)app端仿抖音短视频 丝滑切换视频效果,无限数据加载](https://ext.dcloud.net.cn/plugin?id=21073)
|
||
[兼容安卓、IOS端支持全局消息弹窗插件](https://ext.dcloud.net.cn/plugin?id=20254)
|
||
[(支持安卓和IOS端)原生UTS组件svg插件](https://ext.dcloud.net.cn/plugin?id=18803)
|
||
[(兼容IOS和安卓Web三端)SVGA 动画组件 支持自定义文本、图片,图层隐藏功能](https://ext.dcloud.net.cn/plugin?id=16489)
|
||
[系统权限验证、获取、跳转](https://ext.dcloud.net.cn/plugin?id=15673)
|
||
[(兼容安卓、IOS、鸿蒙)二维码 qrcode 自定义logo图片 颜色可自定义](https://ext.dcloud.net.cn/plugin?id=15583)
|
||
[仿抖音短视频微信小程序 丝滑切换视频效果,无限数据加载不卡顿,咨询进IM交流群](https://ext.dcloud.net.cn/plugin?id=13679) |