小程序怎么查看base64图片

 4473

小程序怎么查看base64图片?下面本篇文章给大家介绍一下微信小程序中预览base64图片的方法,希望对大家有所帮助!


小程序怎么查看base64图片


一、后台传过来的图片为base64格式的,显示的话用【"data:image/PNG;base64," + data】就可以正常显示。然后在调用微信API接口previewImage却有诸多问题,如:

windows开发工具黑屏

部分安卓机型无法显示

控制台报错等

二、经过查询,找到了官方的回答。微信官方的意思是需要用url地址,不支持base64格式,以下是微信官方回答:

wx.previewImage API 预览base64图片导致微信闪退? | 微信开放社区 (qq.com)

https://developers.weixin.qq.com/community/develop/doc/00088c9e44c3d880597ab22b15bc00?highLine=wx.previewImage%20base64


小程序怎么查看base64图片


解决方案

思路:先把base64作为临时文件存到本地,然后预览,预览结束时删除临时文件

  1. // 获取应用实例
  2. const app = getApp()
  3.  
  4. Page({
  5.   data: {
  6.     //base64数据,由后台传过来
  7.     base64: '',
  8.     //本机的临时文件路径
  9.     localImgUrl: ''
  10.   },
  11.  
  12.   onShow: function() {
  13.     // 在这里删除临时文件
  14.     var localImgUrl = this.data.localImgUrl;
  15.     if(localImgUrl) {
  16.       var fs = wx.getFileSystemManager();
  17.       fs.unlinkSync(localImgUrl);
  18.       fs.closeSync();
  19.     }
  20.   },
  21.      
  22.   //预览图片
  23.   onPreviewImage() {
  24.     var base64 = "data:image/PNG;base64," + this.data.base64;
  25.     var imgPath = wx.env.USER_DATA_PATH + '/e-invoice' + Date.parse(new Date()) + '.png';
  26.     var imageData = base64.replace(/^data:image\/\w+;base64,/, "");
  27.     var fs = wx.getFileSystemManager();
  28.     fs.writeFileSync(imgPath, imageData, "base64");
  29.     fs.close();
  30.     this.setData({
  31.       localImgUrl: imgPath
  32.     })
  33.     wx.previewImage({
  34.       urls: [imgPath] // 需要预览的图片http链接列表
  35.     })
  36.   }
  37. })


TAG标签:
本文网址:https://www.zztuku.com/detail-10423.html
站长图库 - 小程序怎么查看base64图片
申明:本文转载于《掘金社区》,如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐