微信小程序生成小程序码避坑指南

在开发微信小程序生成小程序码功能时,遇到真机上canvas无法渲染base64图片的问题。解决办法是通过客户端writeFile创建图片,并避免因图片名字相同导致的更新失效问题。在安卓设备中,即使接口返回不同的ArrayBuffer,重复的名字仍会导致图片不更新。为解决此问题,创建动态目录存储随机命名的图片,并在生成前清理目录。示例代码中涉及跨域问题,需注意设置。
摘要由CSDN通过智能技术生成

       最近在开发“生成小程序码”功能,由于小程序canvas组件在真机中无法渲染base64格式的图片,所以使用writeFile方法在客户端创建图片的思路实现。

       但发现,如果图片名字是一样的话,尽管“小程序码接口”每次返回的ArrayBuffer数据不一样,安卓机还是会出现图片不更新的情况。于是思路变成,创建一个目录,每次在这个目录下生成随机名字的图片,为避免造成缓存过大,每次生成图片前都清空目录。

以下代码中使用了开发者文档中的一个二维码,所以存在跨越问题,请勾选

js代码

const dir = wx.env.USER_DATA_PATH + '/test';

Page({
    data: {
        codeSrc: ''
    },
    onLoad: function (options) {
        this.createPhoto();
    },
    createPhoto() {
        Promise.all([
            this.getCodeBuffer(),//获取小程序码ArrayBuffer数据
            this.clearFiles()//清除客户端缓存的图片,避免缓存过大,留意方法里的注释
        ])
            .then(res => {
                return this.writeFile(res[0].result.buffer);//在客户端创建一个图片
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值