uniapp中使用uqrcode 页面绘制二维码无法显示问题

使用canvas绘制,uqrcode标签中value为二维码的内容

<view class="qrcode">
						<uqrcode ref="uqrcode" v-show="false" canvas-id="qrcode" value="-" :options="{ margin: 10 }"
							@complete="getCodeUrl"></uqrcode>

						<canvas style="width: 300rpx; height: 300rpx;" canvas-id="myCanvas" id="canvas">
						</canvas>
					</view>
// 当二维码生成时,获取二维码的临时路径
			drawImage(code) {
				console.log(code);
				let ctx = uni.createCanvasContext('myCanvas')
				ctx.setFillStyle('#f2f2f2')
				ctx.fillRect(0, 0, 150, 150)
				// ctx.setFontSize(20)
				ctx.setFillStyle('#666')
				ctx.setTextAlign('center')
				// ctx.fillText('这里是画布', 300 / 2, 30, 300)
				// 绘制二维码图片
				ctx.drawImage(code, 0, 0, 150, 150)
				ctx.draw()
			},
			// 当二维码生成时,获取二维码的临时路径
			getCodeUrl(res) {
				if (res.success) {
					this.$refs.uqrcode.toTempFilePath({
						success: res => {
							this.getPath(res.tempFilePath)
						}
					});
				}
			},
			// base64文件转为暂存文件
			getPath(code) {
				const fs = uni.getFileSystemManager();
				var times = new Date().getTime();
				var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
				fs.writeFile({
					filePath: codeimg,
					data: code.slice(22),
					encoding: 'base64',
					success: () => {
						this.drawImage(codeimg)
					}
				});
			},

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值