我是靠谱客的博主 迅速鸡,最近开发中收集的这篇文章主要介绍uniapp 扫码原生插件 - 新版(支持连续扫码模式;支持设置格式;可任意自定义界面)Ba-Scanner,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介(下载地址)

Ba-Scanner 是一款毫秒级扫码插件,同时支持多码、相册、闪光灯、焦距缩放、提示音、震动等等。

新增支持自定义任意界面、任意点击事件,可以让扫码界面和您的应用更加匹配、美观。

新增支持连续扫码,可设置时间间隔,亲测持续扫码万次不卡顿

新增支持设置扫码格式

新增支持自定义webview遮罩界面,可直接传html地址,本地、网络都支持(参考:“自定义webview遮罩界面”)

  • 支持同时扫多个二维码和条形码
  • 支持配置相册
  • 支持闪光灯
  • 相机可以调整焦距放大缩小
  • 支持自定义扫描线颜色、提示文案等
  • 支持扫描完成提示音、震动
  • 支持任意自定义界面(支持自行定制,也可联系作者定制)
  • 支持自定义点击事件
  • 支持连续扫码模式
  • 支持设置扫码格式
  • 新增支持自定义webview遮罩界面,可直接传html地址,本地、网络都支持,(参考:“自定义webview遮罩界面”)

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

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

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

截图展示

在这里插入图片描述

使用方法(示例)

script 中引入组件

	const scanner = uni.requireNativePlugin('Ba-Scanner')

script 中调用

		methods: {
			onScan() { //默认界面
				scanner.onScan({
						isContinuous: true,
						barcodeFormats: ["QR Code"],
						scanTimeSpace: 2000,
						isShowVibrate: true,
						isShowBeep: false,
						hintText: '测试扫码',
					},
					(ret) => {
						console.log(ret)
						if (ret.result) {
							this.showToast(ret.result)
						}
					});
			},
			onScan2() { //自定义界面
				scanner.onScan({
						isShowVibrate: true,
						isShowBeep: false,
						hintText: '测试扫码',
						customResName: 'ba_scan_custom_view',
						customConfig: {
							lightTvTextOn: '轻触关闭',
							lightTvTextOff: '轻触照亮'
						},
						customEvents: [{
							resId: 'btn_my_card',
						}, {
							resId: 'btn_scan_record',
						}]
					},
					(ret) => {
						console.log(ret)
						if (ret.result) {
							this.showToast(ret.result)
						}
						if (ret.isCustomEvent) {
							this.showToast(ret.eventResId);
						}
					});
			},
			onScan3() {//自定义webview遮罩界面
				let that = this;
				scanner.onScan({
						isContinuous: true,
						scanTimeSpace: 3000,
						isShowVibrate: true,
						isShowBeep: true,
						hintText: '测试扫码',
						customWebview:'file:///android_asset/testScan.html'
					},
					(ret) => {
						console.log(ret)
						if (ret.result) {
							that.resultList.push(ret.result);
							that.showToast(ret.result);
						}
					});
			},
		}

默认界面

Ba-Scanner 自定义配置参数

属性名类型默认值说明
isShowVibrateBooleantrue扫描完成震动
isShowBeepBooleanfalse扫描完成声音
isShowPhotoAlbumBooleantrue是否显示相册
isShowLightControllerBooleantrue是否显示闪光灯开关
zoomBooleanfalse是否支持手势缩放
scanColorString#FF0000扫描线的颜色
hintTextString扫二维码/条形码提示文案
hintTextColorString#FF0000提示文案颜色
hintTextSizeNumber14提示文案字体大小
scanGridBooleanfalse扫描线样式是否为网格
gridScanLineColumnNumber30网格扫描线的列数
gridScanLineHeightNumber300网格高度
isContinuousBooleanfalse是否开启连续扫描,默认 false
scanTimeSpaceint1000连续扫描时间间隔,单位毫秒,默认 1000
isShowToastBooleantrue扫码成功是否 toast 提示,默认 true
barcodeFormatsArray设置扫码格式,支持多个,默认所有。如:[“QR Code”, “Code 128”]
支持的扫码格式 barcodeFormats 参数
  • 线性格式:Codabar、Code 39、Code 93、Code 128、EAN-8、EAN-13、IFF、UPC-A、UPC-E
  • 2D 格式:Aztec、Data Matrix、PDF417、QR Code(二维码)

回调参数

属性名类型说明
codeString扫描结果判断,success为成功,其他失败
resultString扫描结果

自定义webview遮罩界面

使用简单,直接在调用onScan时,加一个customWebview参数传html网址即可,同时支持网络和原生本地地址(assets)。如

            onScan3() {//自定义webview遮罩界面
                let that = this;
                scanner.onScan({
                        isContinuous: true,
                        scanTimeSpace: 3000,
                        isShowVibrate: true,
                        isShowBeep: true,
                        hintText: '测试扫码',
                        customWebview:'file:///android_asset/testScan.html'
                    },
                    (ret) => {
                        console.log(ret)
                        if (ret.result) {
                            that.resultList.push(ret.result);
                            that.showToast(ret.result);
                        }
                    });
            },

本地html放置位置如下,路径格式为 “file:///android_asset/”+文件名称,如“file:///android_asset/testScan.html”
在这里插入图片描述

html示例代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>webview 遮罩界面</title>
		<script>
			function scanResult(result) { //监听扫码结果
				alert("result:" + result);
			}

			function closeScan() { //关闭扫码界面
				Android.closeScan();
			}

			function openAlbum() { //打开相册扫码
				Android.openAlbum();
			}

			function openLight() { //打开闪光灯
				Android.openLight();
			}

			function closeLight() { //关闭闪光灯
				Android.closeLight();
			}
		</script>
	</head>

	<body>
		<p style="color:white;">自定义 webview 遮罩界面</p>
	    <button type="button" onclick="closeScan()">closeScan</button>
		<button type="button" onclick="openAlbum()">openAlbum</button>
		<button type="button" onclick="openLight()">openLight</button>
		<button type="button" onclick="closeLight()">closeLight</button>
	</body>
</html>

自定义界面

示例

布局文件

自定义界面是编写 android 的xml布局界面,按文档配置即可,资源名称、控件id要和调用方法一致。可自行定制,也可联系作者定制。

  • 编写好对应的布局文件,放在项目的 “nativepluginsBa-Scannerandroidreslayout” 目录下(没有就新建)。
  • 所用到的图片资源,放在“nativepluginsBa-Scannerandroidresdrawable-xxhdpi” 目录下

注意:配置更改后,需要重新制作基座才生效,建议提前配置。
在这里插入图片描述

扫码调用参数

属性名类型必填默认值说明
customResNameStringtrue自定义界面名称
customConfigObjectfalse自定义界面配置
customEventsArrayfalse自定义点击事件

customConfig

属性名类型必填默认值说明
backResIdStringfalse“iv_back”返回控件ID
albumResIdStringfalse“iv_photo”相册控件ID
lightResIdStringfalse“btn_scan_light”闪光灯控件ID
lightIvResIdStringfalse“iv_scan_light”闪光灯图标控件ID
lightTVResIdStringfalse“tv_scan_light”闪光灯文本控件ID
lightTvTextOnStringtrue“关闭手电筒”闪光灯打开时显示文本
lightTvTextOffStringtrue“打开手电筒”闪光灯关闭时显示文本ID
lightIvIconOnStringtrue“scan_custom_light_open”闪光灯打开时显示图标
lightIvIconOffStringtrue“scan_custom_light_close”闪光灯关闭时显示图标

customEvents

属性名类型必填默认值说明
resIdStringtrue自定义点击事件ID
showBooleanfalsetrue自定义点击事件ID

回调参数

属性名类型说明
codeString扫描结果判断,success为成功,其他失败
resultString扫描结果

系列插件

图片选择插件 Ba-MediaPicker (文档)

图片编辑插件 Ba-ImageEditor (文档)

文件选择插件 Ba-FilePicker (文档)

应用消息通知插件 Ba-Notify(文档)

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

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

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

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

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

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

安卓保活插件 Ba-KeepAlive(文档)

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

自定义图片水印 Ba-Watermark(文档)

视频压缩插件 Ba-VideoCompressor(文档)

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

原生Toast弹窗提示(可穿透所有界面) Ba-Toast(文档)

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

pdf阅读 Ba-Pdf(文档)

最后

以上就是迅速鸡为你收集整理的uniapp 扫码原生插件 - 新版(支持连续扫码模式;支持设置格式;可任意自定义界面)Ba-Scanner的全部内容,希望文章能够帮你解决uniapp 扫码原生插件 - 新版(支持连续扫码模式;支持设置格式;可任意自定义界面)Ba-Scanner所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部