微信小程序生成的二维码长按保存的坑

微信生成二维码,是后台像微信接口请求,拿到buffer以后,转成base64,然后我们在前端进行展示。
在小程序版本库2.7.0以后,微信的image标签,提供了show-menu-by-longpress属性,直接在image标签上设置show-menu-by-longpress="1"即可实现长按保存,发送给朋友,识别图中小程序等功能。

但是!!!!!

在测试中我发现,在安卓机型上是没问题的,在ios上保存图片和分享给朋友都失效了。经过一系列的踩坑,终于绕过了这个坑。
具体思路就是:把后台传回来的base64生成一个临时文件,给image的src设置为这个临时文件,而不是直接把base64放上去。
代码如下:

const fs = wx.getFileSystemManager();
//随机定义路径名称
let times = new Date().getTime();
let codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
 
//将base64图片写入
let that=this;
fs.writeFile({
  filePath: codeimg,
  data: that.src.slice(22),
  encoding: 'base64',
  success: (res) => {
    //写入成功了的话,新的图片路径就能用了
    console.log(res)
    console.log(codeimg)
    that.src2=codeimg;
  }
});

这样的话 ,在ios上就可以保存了,亲测可用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。