更新记录

1.8.0(2025-05-24)

安卓端 fix: 修复由1.7.9版本引起的识别多个二维码后,左上角叉不能关闭的bug

Feat-重要更新: 1. 安卓新增跟随IOS界面样式配置选项

          2. 新增二维码识别中自动缩放相机功能配置

1.7.9(2025-05-22)

修复安卓端灯光切换的需要点两次的bug

1.7.8(2025-05-22)

重要:安卓端支持手动聚焦缩放功能

查看更多

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 5.0 - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × - × × × ×

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 - - ×

插件使用说明文档

注意!

插件需要打自定义基座运行!

插件需要打自定义基座运行!

插件需要打自定义基座运行!

插件说明

本插件是封装了谷歌mlkit条码识别功能,支持多种条码类型扫码,
识别速度和准确率杠杠的,可以支持多个二维码识别,识别成功会有提示音和震动效果,类似wx扫码。

IOS端注意!,不支持摄像头切换,用法参考后面的用例(扫码插件支持的ios版本是>=15.5)

扫码类型:支持文本、链接、电话、邮件、WIFI等通用类型条码

type CodeType = 'text'| 'url'| 'wifi'| 'phone'| 'sms'
| 'email'
| 'contact'
| 'geo'
| 'calendar'
| 'driverLicense'
| 'isbn'
| 'product';

支持扫码格式列表,默认支持全部格式,可以设置某一种扫码格式类型


* 256--> FORMAT_QR_CODE
* 128--> FORMAT_ITF)
* 1----->FORMAT_CODE_128
* 2----->FORMAT_CODE_39
* 4----->FORMAT_CODE_93
* 8----->FORMAT_CODABAR
* 32---->FORMAT_EAN_13
* 64---->FORMAT_EAN_8)
* 512--->FORMAT_UPC_A
* 1024-->FORMAT_UPC_E
* 2048-->FORMAT_PDF417
* 16---->FORMAT_DATA_MATRIX
* 4096-->FORMAT_AZTEC

页面调用插件方式


  • uniapp的使用方式

<template>
    <view>
        <button @click="openScan">打开扫码</button>
    </view>
</template>

<script>
    import {openCamera} 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,//隐藏相册操作,默认显示
                    formatsVal:0, //扫码格式
                    markeTitle:'', //扫码页底部提示文字
                    showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
                    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} 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,//隐藏相册操作,默认显示
                    formatsVal:0, //扫码格式
                    markeTitle:'', //扫码页底部提示文字
                    showToast:false,//二维码识别成功显示toast(只针对连续扫码生效)
                    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项目中使用(uniapp项目未测试)

<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,//隐藏相册操作,默认显示
            markeTitle:'', //扫码页底部提示文字
            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>

隐私、权限声明

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

相机、相册

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

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

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