更新记录

1.4(2024-04-01)

1、 优化扫码流程 2、 支持Ba-Scanner-G跳转扫码模式

1.3(2024-01-30)

1、新增打开、关闭摄像头功能 2、优化抓拍

1.2(2024-01-24)

扫码识别优化

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


扫码原生插件 - 组件版(毫秒级、连续扫码、多码、拍照)Ba-ScanView2

简介

Ba-ScanView2 是一款毫秒级扫码插件,采用component组件模式,可直接在uniapp界面直接引用,高宽可随意设置;支持抓拍照片;支持Ba-Scanner-G模式跳转。

  • component组件模式,可直接在uniapp界面直接引用,高宽可随意设置
  • 支持连续扫码,可设置时间间隔
  • 支持多码选择
  • 支持设置扫码格式
  • 支持打开、关闭闪光灯
  • 支持相册图片识别
  • 同时支持vue2和vue3
  • 支持关闭和打开扫描
  • 支持多码直接返回
  • 支持前置、后置摄像头
  • 支持拍照
  • 支持跳转扫码页(Ba-Scanner-G的功能)

注意 :原生组件,请使用nvue


支持定制,有建议和需要,请联系QQ:2579546054

也可关注博客,实时更新最新插件

uniapp 常用原生插件大全

扫码原生插件 - 新版(支持连续扫码模式;支持设置格式;可任意自定义界面)Ba-Scanner

扫码原生插件 - 基础版(毫秒级、支持多码)Ba-Scanner-G

扫码原生插件 - 组件版(毫秒级、连续扫码、多码、相册)Ba-ScanView

扫码原生插件 - 组件版(毫秒级、连续扫码、多码、相册、新增支持拍照)Ba-ScanView2

扫码原生插件 - 组件版(华为、连续扫码、多码、相册、新增支持抓拍图片)Ba-ScanViewH

扫码原生插件 - (最经典zxing版本)Ba-Scanner-Zxing


组件部分 Ba-ScanViewS

使用方法(示例)

template 中直接引用

        <Ba-ScanViewS ref="scanViewS" style="height: 200;width: 100%;" :load="loadData" @onScan="onScan">
        </Ba-ScanViewS>

script 中调用

    export default {
        data() {
            return {
                loadData: {//配置
                    scanTimeSpace: 1000,//时间间隔
                    //isDirScanMulti: true,//是否直接返回多码,默认fasle(弹窗多码标识,用户自己选择)
                    //rpCancelBtnText: 'cancel',
                    isShowToast: true
                }
            }
        },
        onLoad() {
            let that = this;
            //监听扫码结果(vue2和vue3都支持)
            var globalEvent = uni.requireNativePlugin('globalEvent');
            globalEvent.addEventListener('baScanViewEvent', function(e) {
                console.log('baScanViewEvent' + JSON.stringify(e));
            });
        },
        methods: {
            onScan(e) {//扫码监听(仅支持vue2,vue3请使用globalEvent方式)
                console.log("onScan:" + e.detail.result);
                console.log("onScan:" + e.detail.results);//多个
            },
            openScanLight() {//打开闪光灯
                this.$refs.scanViewS.openScanLight();
            },
            closeScanLight() {//关闭闪光灯
                this.$refs.scanViewS.closeScanLight();
            },
            isLightOn() {//是否打开闪光灯
                this.$refs.scanViewS.isLightOn(res => {
                    uni.showToast({
                        title: 'isLightOn:' + res.isLightOn,
                        icon: 'none'
                    })
                });
            },
            openAlbumPage() {//相册识别
                this.$refs.scanViewS.openAlbumPage();
            },
            openScan() { //打开扫描
                this.$refs.scanViewS.openScan();
            },
            closeScan() { //关闭扫描
                this.$refs.scanViewS.closeScan();
            },
            isScanOpen() { //是否打开扫描
                this.$refs.scanViewS.isScanOpen(res => {
                    uni.showToast({
                        title: 'isScanOpen:' + res.isScanOpen,
                        icon: 'none'
                    })
                });
            },
            openCamera() { //打开摄像头
                this.$refs.scanViewS.openCamera(
                    res => {
                        that.showResult(res)
                    });
            },
            closeCamera() { //关闭摄像头
                let that = this;
                this.$refs.scanViewS.closeCamera(
                    res => {
                        that.showResult(res)
                    }, {
                        bgColor: "#000000"
                    });
            },
            takePhoto() { //拍照
                this.$refs.scanViewS.takePhoto(res => {
                    uni.showToast({
                        title: 'path:' + res.path,
                        icon: 'none'
                    })
                });
            },
        }
    }

默认界面

load 配置参数

属性名 类型 默认值 说明
isShowVibrate Boolean true 扫描完成震动
isShowBeep Boolean false 扫描完成声音
scanTimeSpace int 1000 连续扫描时间间隔,单位毫秒,默认 1000
isShowToast Boolean true 扫码成功是否 toast 提示,默认 true
barcodeFormats Array 设置扫码格式,支持多个,默认所有。如:["QR Code", "Code 128"]
scanColor String #FF0000 扫描线的颜色
hintText String 扫二维码/条形码 提示文案
hintTextColor String #FF0000 提示文案颜色
hintTextSize Number 14 提示文案字体大小
isDirScanMulti Boolean false 是否直接返回多码,默认false(弹窗多码标识,用户自己选择)
rpCancelBtnText String 取消 取消按钮文本
isFacingFront Boolean false 是否是前置摄像头,默认false
支持的扫码格式 barcodeFormats 参数
  • 线性格式:Codabar、Code 39、Code 93、Code 128、EAN-8、EAN-13、IFF、UPC-A、UPC-E
  • 2D 格式:Aztec、Data Matrix、PDF417、QR Code(二维码)

接口说明

方法名 说明
openScanLight 打开闪光灯
closeScanLight 关闭闪光灯
isLightOn 是否打开闪光灯
openAlbumPage 相册识别
openScan 打开扫描
closeScan 关闭扫描
isScanOpen 是否打开扫描
takePhoto 拍照(流获取,速度较快)
takePicture 拍照(相机)
openCamera 打开摄像头
closeCamera 关闭摄像头

takePhoto/takePicture方法参数

传参
属性名 类型 必填 默认值 说明
path String false '' 设置拍照图片地址,可不传
isFull Boolean false false 是否全摄像头显示,默认false,和预览屏一致
zoom number false 返回图片与原图比例(调节清晰度使用),默认为调优算法
返回
属性名 类型 说明
path String 拍照图片地址
status Boolean 是否拍照成功

closeCamera方法参数

传参
属性名 类型 必填 默认值 说明
bgColor String false '#000000' 关闭摄像头后遮罩颜色

跳转界面扫码部分

使用方法(示例)

script 中引入组件

    const scanView = uni.requireNativePlugin('Ba-ScanView2')

script 中调用

        methods: {
            onScanG() {
                scanView.onScan({
                        'isShowVibrate': true,
                        'isShowBeep': true,
                        'isShowPhotoAlbum': true,
                        'isShowLightController': true,
                        'zoom': true,
                        'scanColor': '#ff0000',
                        'hintText': '扫二维码/条形码',
                        'hintTextColor': '#ffffff',
                        'hintTextSize': '14'
                    },
                    (res) => {
                        if (res.code == "success")
                        ...
                        //扫码结果 res.result
                    });
            }
        }
Ba-ScanView2 自定义配置参数
属性名 类型 默认值 说明
isShowVibrate Boolean true 扫描完成震动
isShowBeep Boolean false 扫描完成声音
isShowPhotoAlbum Boolean true 是否显示相册
isShowLightController Boolean true 是否显示闪光灯开关
zoom Boolean false 是否支持手势缩放
scanColor String #FF0000 扫描线的颜色
hintText String 扫二维码/条形码 提示文案
hintTextColor String #FF0000 提示文案颜色
hintTextSize Number 14 提示文案字体大小
scanGrid Boolean false 扫描线样式是否为网格
gridScanLineColumn Number 30 网格扫描线的列数
gridScanLineHeight Number 300 网格高度
统一回调参数
属性名 类型 说明
code String 扫描结果判断,success为成功,其他失败
result String 扫描结果

系列插件

图片选择插件 Ba-MediaPicker文档

图片编辑插件 Ba-ImageEditor文档

文件选择插件 Ba-FilePicker文档

应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify文档

自定义通知(耳机电量)插件 Ba-NotifyEarphone文档

应用未读角标插件 Ba-Shortcut-Badge文档

应用开机自启插件 Ba-Autoboot文档

扫码原生插件(毫秒级、支持多码)Ba-Scanner-G文档

扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner文档

动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar文档

原生sqlite本地数据库管理 Ba-Sqlite文档

安卓保活插件(采用多种主流技术) Ba-KeepAlive文档

安卓保活套装(通用、常驻通知、电池优化、自启管理、后台运行等)文档

安卓快捷方式(桌面长按app图标) Ba-Shortcut文档

自定义图片水印(任意位置) Ba-Watermark文档

最接近微信的图片压缩插件 Ba-ImageCompressor文档

视频压缩、视频剪辑插件 Ba-VideoCompressor文档

动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon文档

原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast文档

图片涂鸦、画笔 Ba-ImagePaint文档

pdf阅读(手势缩放、显示页数) Ba-Pdf文档

声音提示、震动提示、语音播报 Ba-Beep文档

websocket原生服务(自动重连、心跳检测) Ba-Websocket文档

短信监听(验证码) Ba-Sms文档

智能安装(自动升级) Ba-SmartUpgrade文档

监听系统广播、自定义广播 Ba-Broadcast文档

监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener文档

全局置灰、哀悼置灰(可动态、同时支持nvue、vue) Ba-Gray文档

获取设备唯一标识(OAID、AAID、IMEI等) Ba-IdCode文档

实时定位(系统、后台运行、支持息屏)插件 Ba-Location文档

实时定位(高德、后台运行、支持息屏、坐标转换、距离计算) Ba-LocationAMap文档

窗口小工具、桌面小部件、微件 Ba-AppWidget文档

窗口小工具、桌面小部件、微件(日历、时间) Ba-AwCalendarS文档

画中画悬浮窗(视频) Ba-VideoPip文档

悬浮窗(在其他应用上层显示) Ba-FloatWindow文档

悬浮窗(应用内、无需授权) Ba-FloatWindow2文档

悬浮窗(悬浮球、动态菜单、在其他应用上层显示) Ba-FloatBall文档

添加到“用其他应用打开”中,用于文件传递、分享等 Ba-ShareReceive文档

获取地图数据(高德、地理编码、反地理编码) Ba-AMapData文档

来电显示悬浮窗插件(支持锁屏) Ba-CallerID文档

隐私、权限声明

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

android.permission.CAMERA

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

插件不采集任何数据

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

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