uni-app内置组件camera在微信小程序中的扫码使用

本文详细介绍了如何在uni-app微信小程序中使用camera组件进行扫码操作,包括初始化、权限获取、错误处理和扫码结果处理,以及注意事项关于正式版小程序的隐私协议要求。
摘要由CSDN通过智能技术生成
/*本文主要讲解uni-app内置组件camera在微信小程序中的扫码运用*/
<template>
	<view>
		/*device-position:后置摄像头*/
		/*flash:关闭闪光灯*/
		/*mode:扫码模式*/
		/*@error:报错时触发*/
		/*@scancode:扫码识别成功时触发*/
		/*@initdone:初始化完成时触发*/
		/*@ready:初始化成功时触发*/
		/*@stop:非正常中止时触发,如后台退出*/
		<camera device-position="back" flash="off" @error="error" mode="scanCode" @scancode="scancode"
			@initdone="initdone" @ready="ready" @stop="stop">
		</camera>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				loading: false,
				/*是否加载camera组件*/
				status: "load" /*扫码状态*/
			}
		},
		onLoad() {
			this.getAuth()
		},
		methods: {
			initdone() {
				console.log("camera初始化完成")
			},
			stop() {
				console.log("camera中止")
			},
			ready() {
				console.log("camera初始化成功")
			},
			error(e) {
				console.log("错误信息:" + e.detail.errMsg)
			},
			scancode(e) {
				if (this.status == "loading") {
					return
				}
				this.status = "loading"
				console.log("扫码结果:" + e.detail.result)
				setTimeout(() => {
					console.log("处理数据")
					this.status = "load"
				}, 2000)
			},
			getAuth() {
				uni.getSetting({
					success: (res => {
						if (res.authSetting["scope.camera"]) {
							console.log("已授权")
							this.loading = true
						} else {
							console.log("未授权")
							this.showModal()
						}
					})
				})
			},
			showModal() {
				uni.showModal({
					content: "当前页面功能需打开相机权限,请点击跳转设置",
					showCancel: false,
					confirmText: "点击跳转",
					success: (res => {
						this.goAuth()
					})
				})
			},
			goAuth() {
				uni.openSetting({
					success: (res => {
						if (res.authSetting["scope.camera"]) {
							console.log("已授权")
							this.loading = true
						} else {
							console.log("未授权")
							this.showModal()
						}
					})
				})
			}
			/*需要注意,发布正式版小程序时,需要在隐私协议添加相机权限,否则在设置中无法开启授权*/
		}
	}
</script>

<style lang="scss" scoped>
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值