uniapp开发h5页面的扫码功能(html5-qrcode和mumu-getQrcode两种方式),以及后续用安卓扫码传h5的方法
创始人
2025-01-15 19:35:57
0

后续

后续就是下面两方法都无法解决http的问题,安卓开发说不是混合开发吗?你让我来调摄像头,有值传你不就行了。。。
具体方法:点扫码时调安卓函数,让安卓知道要扫码了,然后在main.js绑定事件window.android.scanBarcode()(备注:事件名字是安卓给的,相当于自己取的函数名称,后面这个一样,别被误导了) ,安卓扫码后触发一个window.handleScanResult,这个事件传值回来,把window事件赋值给自己的this.什么的vue函数事件就行了,下面看看我的源代码

dome.vue

// 扫码 scanCode() { 	this.$toast({ 		title: '测试-1.5s后进入扫码' 	}, () => { 		console.log('测试扫码'); 		// 核心是调安卓的函数 		if (window.android) { 			window.android.scanBarcode() 		} 	}) },  // 监听扫码结果,和下面的main.js相呼应 watch: { 	'$store.state.scanCode'(newVal) { 		if (newVal) { 			this.form.CowID = newVal 			this.$store.commit('setScanCode', '') 		} 	} }, 

main.js

// 处理扫码 window.handleScanResult = (result) => { 	//我这里是存vuex中,存本地或者其他方式也可以 	store.commit('setScanCode', result) } 

上面是后续,下面是原文:

说明

只支持https域名
只支持https域名
只支持https域名

因为uniapp自带的api不支持h5,而且非微信环境也无法使用公众号jsjdk的扫码,只能尝试其他方法
但是发现只能https域名才可以调用,其他所有人的都不许http域名。
开发调试记得去把这两个点起来,manifest.json => web配置 => 启动https协议 ,和 App模块配置 => 打包模块配置 => Barcode扫码(相当于你在源码视图加
”,
”,)

效果图

按钮
方法2效果图

html5-qrcode

下载插件

npm i html5-qrcode 

组件代码:

     

使用
自己导入注册使用。或者uniapp项目直接放components文件夹,scanCode文件夹和scanCode.vue同名(俺就是用这种方法)。然后使用v-model的,showScan控制显示隐藏(底层v-if),自己手动控制相机开关,然后@success成功回调,@err失败回调

  getScan(val) { 	console.log('扫码成功', val); 	alert(val) }, err(err) { 	console.log(err); 	alert(err) }, 

mumu-getQrcode(更强大)

插件市场地址:(H5调用摄像头识别二维码(原生H5调用,不需要任何sdk,本地扫描识别,不需要后端)): https://ext.dcloud.net.cn/plugin?id=7007

HBX导入就行了,引入,注册,使用

// html,放在外层相当于弹出层一样  	    // js import mumuGetQrcode from '@/uni_modules/mumu-getQrcode/components/mumu-getQrcode/mumu-getQrcode.vue'  components: { 	mumuGetQrcode },  qrcodeSucess(data) { 	this.$toast({ 		title: data || '扫码成功' 	}) 	this.showScan = false }, qrcodeError(err) { 	this.$toast({ 		title: err + '' || '扫码错误' 	}) 	this.showScan = false },   // css .scanCode { 	position: fixed; 	top: 0; 	left: 0; 	right: 0; 	bottom: 0; 	z-index: 99; 	height: 100%; 	width: 100%; 	background-color: rgba(0, 0, 0, 0.7); } 

相关内容

热门资讯

SQL编写:十个在实践中养成的... 写在前面写SQL是数据分析和数据库管理的重要技能之一。养成以下好习惯可以帮助你编写高效、可靠和易于维...
Web开发:一个可拖拽的模态框... 目录一、需求描述二、实现效果三、完整代码四、实现过程1、HTML 页面结构2、CSS 元素样式3、J...
MYSQL数字函数:不可不知的... 🌈 个人主页:danci_ 🔥 系列专栏:...
第一章 深度学习和神经网络 文章目录第一章 深度学习和神经网络深度学习机器学习和深度学习的区别特征提取的角度数据量的角度深度学习...
Python中json.loa...  🔥 交流讨论:欢迎加入我们一起学习!🔥...
最新技巧对战互娱有辅助的!太离... 最新技巧对战互娱有辅助的!太离谱了原来确实真的是有挂(2021已更新)(有挂教会);1、这是跨平台的...
【Mysql】给查询记录增加序... 在MySQL 8.0版本中,你可以使用ROW_NUMBER()函数来添加序号。以下是一...
【已解决】MySQL(Navi... 目录问题现象:问题分析:思路:解决方法:  ...
分享一款(Wepoke长期)软... 分享一款(Wepoke长期)软件透明挂(透视)外挂辅助器脚本(2023已更新)(哔哩哔哩);1.We...
我来教大家家乡大贰辅助器能用的... 我来教大家家乡大贰辅助器能用的!太难了原来是真的有挂(2020已更新)(有挂总结);家乡大贰辅助器能...