更新记录
1.10.7(2025-11-26)
- 安卓端sdk支持最低版本改为默认为21
1.10.6(2025-11-26)
- 安卓端增加多点自动对焦,提升识别效率
1.10.5(2025-11-24)
- 优化安卓端单码识别速度
- IOS端新增侧滑关闭扫码页功能
平台兼容性
uni-app(4.66)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 5.0 | 15 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.66)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | 5.0 | 15 | 11 | - |
插件使用说明文档
注意!
插件需要打自定义基座运行!
插件需要打自定义基座运行!
插件需要打自定义基座运行!
插件说明
本插件是封装了谷歌mlkit条码识别功能,支持多种条码类型扫码,
识别速度和准确率杠杠的,可以支持多个二维码识别,识别成功会有提示音和震动效果,类似wx扫码。
IOS端注意!,不支持摄像头切换,用法参考后面的用例(扫码插件支持的ios版本是>=15.5)
鸿蒙端注意:鸿蒙使用的是官方默认扫码界面UI,不支持自定义界面内容,只能单码识别,不支持连续扫码
扫码类型:支持文本、链接、电话、邮件、WIFI等通用类型条码
type CodeType = 'text'| 'url'| 'wifi'| 'phone'| 'sms'
| 'email'
| 'contact'
| 'geo'
| 'calendar'
| 'driverLicense'
| 'isbn'
| 'product';
支持扫码格式列表,默认支持全部格式,可以设置某一种扫码格式类型
- 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即可开启连续扫码,默认不开启 |
| autoZoom | boolean | false | N | 开启相机自动缩放,默认不开启,只限非连续扫码模式下使用 |
| styleFollowIos | boolean | false | N | 页面样式是否跟随IOS端,默认false不跟随 |
| showLamplight | boolean | true | N | 隐藏/显示灯光操作,默认显示 |
| showPhotoAlbum | boolean | true | N | 隐藏/显示相册操作,默认显示 |
| scanBox | boolean | true | N | 中间区域扫码模式 |
| scanBoxTitle | string | '将码放入取景框,即可自动扫描' | N | 中间区域扫码模式标题,只有scanBox为true生效 |
| scanBoxTitleColor | string | '#ffffff' | N | 中间区域扫码模式标题颜色,只有scanBox为true生效 |
| scanBoxTitleSize | number | 16 | N | 中间区域扫码模式标题大小,只有scanBox为true生效 |
| scanBoxHeight | number | 540 | N | 中间区域扫码框的高度,只有scanBox为true生效 |
| formatsVal | number | 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端界面样式有效) |
页面调用插件方式
- uniapp的使用方式
<template>
<view>
<button @click="openScan">打开扫码</button>
</view>
</template>
<script>
import {openCamera,closeCamera} from '@/uni_modules/xwq-mlkit-scan-code';
export default {
methods: {
openScan(){
openCamera({
cameraType:"FRONT",//开启前置摄像头,不设置默认使用后置摄像头,当设备只有一个摄像头,该设置无效,会自动取可用列表的摄像头
continuous:true,//设为true即可开启连续扫码,默认不开启
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
showLamplight:false,//隐藏灯光操作,默认显示
showPhotoAlbum:false,//隐藏相册操作,默认显示
scanBox:true, //中间区域扫码模式
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码模式标题,只有scanBox为true生效
scanBoxTitleColor:"#ff0000",//中间区域扫码模式标题颜色,只有scanBox为true生效
scanBoxTitleSize:16,//中间区域扫码模式标题大小,只有scanBox为true生效
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
formatsVal:0, //扫码格式
markeTitle:'', //扫码页底部提示文字
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
lightOnText:'灯光打开',//自定义打开灯光文案
lightOffText:'灯光关闭',//自定义关闭灯光文案
photoText: "自定义相册文字",//相册底部文案
success:(val)=>{
console.log('扫码结果回调===',val)
},
error:(val) => {
console.log('识别失败===', val);
uni.showToast({
title:"没有识别到二维码"
})
},
cancel:()=>{
console.log('取消扫码')
}
});
},
}
}
</script>
- uniappX的使用方式
<template>
<view>
<button @click="openScan">打开扫码</button>
</view>
</template>
<script lang='uts'>
import {openCamera,closeCamera} 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即可开启连续扫码,默认不开启
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
showLamplight:false,//隐藏灯光操作,默认显示
showPhotoAlbum:false,//隐藏相册操作,默认显示
scanBox:true, //中间区域扫码模式
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码标题,只有scanBox为true生效
scanBoxTitleColor:"#ff0000",//中间区域扫码标题颜色,只有scanBox为true生效
scanBoxTitleSize:16,//中间区域扫码标题大小,只有scanBox为true生效
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
formatsVal:0, //扫码格式
markeTitle:'', //扫码页底部提示文字
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
lightOnText:'灯光打开',//自定义打开灯光文案
lightOffText:'灯光关闭',//自定义关闭灯光文案
photoText: "自定义相册文字",//相册底部文案
success:(val:CallbackValType)=>{
console.log('扫码结果回调===',val)
},
error:(val : ErrorCallbackValType) => {
console.log('识别失败===', val);
uni.showToast({
title:"没有识别到二维码"
})
},
cancel:()=>{
console.log('取消扫码')
}
} as InitParamsType);
},
}
}
</script>
IOS端UniappX项目中使用
<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({
continuous:true,//设为true即可开启连续扫码,默认不开启
autoZoom:true,//开启相机自动缩放,默认不开启,只限非连续扫码模式下使用
styleFollowIos:false, //页面样式是否跟随IOS端,默认false不跟随
showLamplight:false,//隐藏灯光操作,默认显示
showPhotoAlbum:false,//隐藏相册操作,默认显示
scanBox:true, //中间区域扫码模式
scanBoxTitle:'将码放入取景框,即可自动扫描',//中间区域扫码标题,只有scanBox为true生效
scanBoxTitleColor:"#ff0000",//中间区域扫码标题颜色,只有scanBox为true生效
scanBoxTitleSize:16,//中间区域扫码标题大小,只有scanBox为true生效
scanBoxHeight:200, //中间区域扫码框的高度,只有scanBox为true生效
markeTitle:'', //扫码页底部提示文字
showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
showToastText:"自定义扫码成功提示",//连续扫码场景提示语
lightOnText:'灯光打开',//自定义打开灯光文案
lightOffText:'灯光关闭',//自定义关闭灯光文案
photoText: "自定义相册文字",//相册底部文案
success: (val : CallbackValType) => {
console.log('识别结果====', val)
uni.showToast({
title:'识别成功'
})
},
error:(val : ErrorCallbackValType) => {
console.log('识别失败===', val);
uni.showToast({
title:"没有识别到二维码"
})
},
cancel:()=>{
console.log('取消扫码')
}
} as InitParamsType);
};
</script>
在鸿蒙端使用用例(注意:鸿蒙使用的是官方默认扫码界面,不能自定义界面内容,只能单码识别,不支持连续扫码)
<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);
};

收藏人数:
购买源码授权版(
试用
赞赏(3)
下载 719
赞赏 3
下载 11501160
赞赏 1813
赞赏
京公网安备:11010802035340号