uniapp二维码生成

uniapp二维码生成

参考文档

【博主:ChoneyLove】uniapp中生成二维码及解决微信小程序端问题总结

依赖引入

shell 复制代码
npm i uqrcodejs

代码

html部分

html 复制代码
<canvas type="2d" id="qrCode" canvas-id="qrCode" style="width: 72rpx; height: 72rpx;"></canvas>

生成代码(vue3 hook)

javascript 复制代码
// 生成二维码
import UQRCode from 'uqrcodejs';
import { onShow } from "@dcloudio/uni-app"
import { nextTick } from 'vue';

export default function useCreateQRCode(type : number = 0, targetName : string = 'qrCode', size : number = 72) {
	// 生成二维码
	const createQRCode = async () => {
		let url = `...`;
		console.log(url);
		let qr = new UQRCode();
		qr.data = url
		qr.size = uni.upx2px(size); // 注意这里大小要跟画布大小一致,否则二维码可能超出画布
		qr.make();
		const canvasContext = uni.createCanvasContext(targetName);
		qr.canvasContext = canvasContext;
		qr.drawCanvas();
	}

	onShow(() => {
		nextTick(() => {
			createQRCode();
		})
	})
	return {}
}

使用

html 复制代码
<template>
	<view>
		<!-- ... -->
		<canvas type="2d" id="qrCode" canvas-id="qrCode" style="width: 72rpx; height: 72rpx;"></canvas>
	</view>
</template>

<script setup lang="ts">
	import useCreateQRCode from "@/hooks/createQRCode";
	useCreateQRCode();
</script>
相关推荐
码间留白1 天前
六轮真机实验后,我把鸿蒙直播推流的 UI 全逼成了原生——uni-app 适配 HarmonyOS NEXT 完整复盘
uni-app·鸿蒙·harmonyos next·直播推流·arkts/arkui
wuxianda10303 天前
2026 苹果审核 4.3 (a) 被拒全解析|Guideline 4.3a spam 马甲包拒审原因 + 避坑方案
flutter·uni-app·苹果上架
头发还在的女程序员4 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
Dumbness6 天前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
码间留白7 天前
uni-app 鸿蒙离线打包:一个改动从源码到真机要穿过几条链
uni-app·鸿蒙·deveco·离线打包·uts插件
多客:duokelijie8 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
码间留白8 天前
鸿蒙端对接 BLE 血压计:从一次握手到读数入库(二)设备篇
物联网·uni-app·鸿蒙·蓝牙ble·血压计
华玥作者9 天前
Vue 3 + TypeScript + uni-app 组件库推荐:hy-app(华玥组件库)
vue.js·typescript·uni-app
FinelyYang9 天前
uniapp使用kkfileview在线预览ppt,excel,word,pdf类型文件
pdf·uni-app·powerpoint
2501_916008899 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview