uniapp+h5+vu3setup写法使用uvQrcode生成二维码、保存二维码

2 篇文章 0 订阅

保存二维码图片时尝试用了uni.saveImageToPhotosAlbum怎么都不好使,方法不执行,没反应,创建a标签的也不适合用在微信浏览器,最终决定使用uvQrcode来实现需求

实现步骤:
1、uniapp插件市场找到uvQrcode插件,地址:https://ext.dcloud.net.cn/plugin?id=12479

2、项目中引入

import uvQrcode from '@/uni_modules/uv-qrcode/components/uv-qrcode/uv-qrcode.vue';

3、使用

//h5SaveTip 设置保存二维码时是否提示 true 或 false 
//h5SaveIsDownload 是否自动下载,默认false出现弹框二次确认
<uv-qrcode ref="qrcode" canvas-id="qrcode" :h5SaveTip="false" :h5SaveIsDownload="true" :value="state.qrcodeValue" size="300rpx" :options="state.options"></uv-qrcode>
<view class="saveBtn" @click="exportQRcode">保存二维码</view>

4、定义数据

<script setup>
	import {ref,reactive} from 'vue'
	import {
		onLoad,
		onReachBottom
	} from '@dcloudio/uni-app';
	const qrcode = ref(null)
	const state = reactive({
		qrcodeValue: 'https://www.baidu.com/',
		options: {
			useDynamicSize: false,
			errorCorrectLevel: 'Q',
			margin: 10,
			areaColor: "#fff",
			// 指定二维码前景,一般可在中间放logo
			//foregroundImageSrc:require('static/image/logo.png')
		},
	})
	onMounted(() => {
		if (qrcode.value) { //不判断的话会报错Cannot read properties of null (reading 'remake')
			qrcode.value.remake({
				success: () => {
					console.log('生成成功');
				},
				fail: err => {
					console.log(err)
				}
			});
		}
	})
function exportQRcode() {
		qrcode.value.toTempFilePath({
			success: res => {
				qrcode.value.save({
					success: () => {
						uni.showToast({
							title: '保存成功!',
							icon: 'success'
						});
					},
					fail: err => {
						uni.showToast({
							title: '保存失败!',
							icon: 'error'
						});
					}
				})
			}
		});
	}
</script>

最终实现效果:
在这里插入图片描述

就酱紫就实现啦!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值