Heim >WeChat-Applet >Mini-Programmentwicklung >So zeigen Sie Base64-Bilder im Miniprogramm an

So zeigen Sie Base64-Bilder im Miniprogramm an

青灯夜游
青灯夜游nach vorne
2021-12-13 10:11:326046Durchsuche

Wie kann ich Base64-Bilder im Miniprogramm anzeigen? Im folgenden Artikel erfahren Sie, wie Sie eine Vorschau von Base64-Bildern im WeChat-Applet anzeigen. Ich hoffe, er hilft Ihnen weiter!

So zeigen Sie Base64-Bilder im Miniprogramm an

1. Das vom Hintergrund übertragene Bild ist im Base64-Format. Wenn Sie es anzeigen möchten, verwenden Sie ["data:image/PNG;base64," + data], um es normal anzuzeigen. Beim Aufrufen der Vorschau der WeChat-API-Schnittstelle treten dann viele Probleme auf, z. B.:

  • Windows-Entwicklungstool schwarzer Bildschirm
  • Einige Android-Modelle können nicht angezeigt werden
  • Konsolenfehler usw.

Zweitens habe ich nach einer Anfrage das gefunden offizielle Antwort. WeChat offiziell bedeutet, dass Sie die URL-Adresse verwenden müssen und das Base64-Format nicht unterstützt wird:

wx.previewImage API führt zum Absturz von WeChat Open Community (qq.com )

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

So zeigen Sie Base64-Bilder im Miniprogramm an

Lösung

Idee: Speichern Sie zunächst base64 als temporäre Datei. Lokal, dann Vorschau, temporäre Dateien am Ende der Vorschau löschen

// 获取应用实例
const app = getApp()

Page({
  data: {
    //base64数据,由后台传过来
    base64: '',
    //本机的临时文件路径
    localImgUrl: ''
  },

  onShow: function() {
    // 在这里删除临时文件
    var localImgUrl = this.data.localImgUrl;
    if(localImgUrl) {
      var fs = wx.getFileSystemManager();
      fs.unlinkSync(localImgUrl);
      fs.closeSync();
    }
  },
    
  //预览图片
  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] // 需要预览的图片http链接列表
    })
  }
})

[Verwandte Lernempfehlungen: Mini-Tutorial zur Programmentwicklung]

Das obige ist der detaillierte Inhalt vonSo zeigen Sie Base64-Bilder im Miniprogramm an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen