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!
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.:
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
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!