溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

小程序如何查看base64圖片

發(fā)布時(shí)間:2021-12-13 10:33:30 來源:億速云 閱讀:884 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章給大家分享的是有關(guān)小程序如何查看base64圖片的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

一、后臺(tái)傳過來的圖片為base64格式的,顯示的話用【"data:image/PNG;base64," + data】就可以正常顯示。然后在調(diào)用微信API接口previewImage卻有諸多問題,如:

  • windows開發(fā)工具黑屏

  • 部分安卓機(jī)型無法顯示

  • 控制臺(tái)報(bào)錯(cuò)等

二、經(jīng)過查詢,找到了官方的回答。微信官方的意思是需要用url地址,不支持base64格式,以下是微信官方回答:

wx.previewImage API 預(yù)覽base64圖片導(dǎo)致微信閃退? | 微信開放社區(qū) (qq.com)

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

解決方案

思路:先把base64作為臨時(shí)文件存到本地,然后預(yù)覽,預(yù)覽結(jié)束時(shí)刪除臨時(shí)文件

// 獲取應(yīng)用實(shí)例
const app = getApp()

Page({
  data: {
    //base64數(shù)據(jù),由后臺(tái)傳過來
    base64: '',
    //本機(jī)的臨時(shí)文件路徑
    localImgUrl: ''
  },

  onShow: function() {
    // 在這里刪除臨時(shí)文件
    var localImgUrl = this.data.localImgUrl;
    if(localImgUrl) {
      var fs = wx.getFileSystemManager();
      fs.unlinkSync(localImgUrl);
      fs.closeSync();
    }
  },
    
  //預(yù)覽圖片
  onPreviewImage() {
    var base64 = "data:image/PNG;base64," + this.data.base64;
    var imgPath = wx.env.USER_DATA_PATH + '/e-invoice' + Date.parse(new Date()) + '.png';
    var imageData = base64.replace(/^data:image\/\w+;base64,/, "");
    var fs = wx.getFileSystemManager();
    fs.writeFileSync(imgPath, imageData, "base64");
    fs.close();
    this.setData({
      localImgUrl: imgPath
    })
    wx.previewImage({
      urls: [imgPath] // 需要預(yù)覽的圖片http鏈接列表
    })
  }
})

感謝各位的閱讀!關(guān)于“小程序如何查看base64圖片”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI