小程式怎麼看base64圖片?以下這篇文章為大家介紹一下微信小程式中預覽base64圖片的方法,希望對大家有幫助!
一、後台傳過來的圖片為base64格式的,顯示的話用【"data:image/PNG;base64," data
】就可以正常顯示。然後在呼叫微信API介面previewImage卻有許多問題,如:
二、經過查詢,找到了官方的答案。微信官方的意思是需要用url位址,不支援base64格式,以下是微信官方回答:
wx.previewImage API 預覽base64圖片導致微信閃退?| 微信開放社群(qq.com )
https://developers.weixin.qq.com/community/develop/doc/00088c9e44c3d880597ab22b15bc00?highLine=wx.previewImage base64
想法:先把base64當作暫存檔案存到本地,然後預覽,預覽結束時刪除臨時檔案
// 获取应用实例 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链接列表 }) } })
【相關學習推薦:小程式開發教學】
以上是小程式怎麼看base64圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!