uniapp 生成二维码

6,076 阅读1分钟

先上效果图:

image.png

记录一下实现流程:

1、采用uniapp插件市场的 插件ID:ay-qrcode

使用的插件:ext.dcloud.net.cn/plugin?id=3… image.png

感想:刚开始觉得狠nice,如得神器,十分感念uniapp社区的强大和插件作者的牛逼,然而好景不长,问题立马就找上来了,无法居中,试了N种办法都没办法实现,可能还是我技术太菜了吧

2、自制简易款

<template>
	<view class="content">
		<view class="ecard">
			<canvas class="canvas" :canvas-id="qrcode_id"></canvas>
		</view>
	</view>
</template>

<script>
	var qr_we = require("./qrcode_wx.js");

	export default {
		data() {
			return {
				qrcode_id: 'qrcode_id',
			};
		},
		onLoad() {
			this.showQrcode();
		},
		methods: {
			showQrcode() {
				let _this = this;
				setTimeout(function() {
					// uniapp内置 rpx 转 px ==> var px = uni.upx2px(100);
					var h = uni.upx2px(400)
					var w = uni.upx2px(400)
					var url = "99161934409721220200004fb409e4edc1474fafb67779173129df"
					var qrcode_id = 'qrcode_id'
					_this.createQrCode(url, qrcode_id, h, w, );

				}, 100);
			},
			// 调用插件中的draw方法,绘制二维码图片
			createQrCode: function(url, canvasId, cavW, cavH) {
				qr_we.api.draw(url, canvasId, cavW, cavH, this, this.canvasToTempImage);
			},
			//获取临时缓存照片路径,存入data中
			canvasToTempImage: function() {
				var _this = this;
			},
		},
		
	};
</script>

<style scoped>
	.content {
		display: -webkit-flex;
		display: flex;
		flex: 1;
		flex-direction: column;
		align-content: center;
		flex-wrap: wrap;
		background-color: #efeff4;
	}

	.ecard {
		display: -webkit-flex;
		display: flex;
		flex-direction: column;
		flex-wrap: wrap;
		justify-content: center;
		align-content: center;
		background-color: #ffffff;
		margin: 60rpx 40rpx 40rpx 40rpx;
		width: 670rpx;
		height: 500rpx;
		border-radius: 25px;
	}

	.canvas {
		width: 400rpx;
		height: 400rpx;
		border: 1px solid red;
	}
</style>

最后附上Demo,百度网盘下载即可导入uniapp使用

链接:pan.baidu.com/s/19o2HdC37… 提取码:gpwq