欢迎加入交流群 🎉🎉🎉
QQ群:695070434
二维码示例
二维码内容直接放入完整的网页地址即可,例如:https://ext.dcloud.net.cn/plugin?id=1287
。
微信小程序开发者工具的bug,预览到真机上或者发布后在手机上显示就是正常的。
Canvas
组件在onReady
生命周期才渲染完毕,所以应当在onReady
生命周期或之后再写生成代码。
如果是本地路径,目前仅支持绝对路径
。如果是网络路径,请检查是否跨域或者是否设置域名白名单等。
如果是原生方式还需配置loadImage (opens new window)。
v-if
、v-show
、display:none;
来控制显隐,如果页面初始化时组件处于隐藏状态,组件则无法正确获取宽高尺寸,如果需要组件默认隐藏,在需要使用的时候再渲染,可以设置组件属性:start="false"
,这样就不会在初始化时加载了,在需要使用的地方调用make
方法即可渲染。canvasId
,开头不能为数字,不能重复。弹层一般是由v-if
或v-show
进行显隐控制的,根据上一条问题来看,这样是会出现问题的,因为弹层组件重新挂载了组件,组件还未渲染完毕,导致失败。这时我们可以先将组件的start
属性设置为false
,让它默认不生成,等到弹层组件触发change
事件的时候,使用$nextTick
监听到页面触发渲染,再调用二维码组件的make
方法去触发生成。
第二种方式可以在主动触发弹层显隐的事件中,延时150毫秒左右调用二维码组件的make
方法触发生成。
微信小程序开发者工具不支持Canvas 2D
真机调试,请使用真机预览,打开vConsole
进行调试。
引用uni-app官网说明:
Canvas是作为独立的模块,打包时需要选择使用Canvas模块才能正常使用相关的功能。 需要在manifest.json的代码视图中配置如下:
"app-plus" : {
/* 模块配置 */
"modules" : {
"Canvas" : "nvue canvas" //使用Canvas模块
},
//...
},
//...
保存好提交云端打包。
避免在组件的属性上直接写入对象,它会自动将其转换为响应式对象,其他属性发生改变时,视图会自动更新,造成组件重复渲染。
以options
属性为例:
<uqrcode ref="uqrcode" canvas-id="qrcode" value="https://uqrcode.cn/doc" :options="{ margin: 10 }"></uqrcode>
需要调整为:
<uqrcode ref="uqrcode" canvas-id="qrcode" value="https://uqrcode.cn/doc" :options="options"></uqrcode>
<script>
export default {
data() {
return {
options: {
margin: 10
}
}
}
}
</script>
提示
如果您还有其他问题,可以加入群聊【uQRCode交流群】:695070434 (opens new window),与其他开发者一起交流反馈哦。
← 快速上手