微信小程序rich-text組件image顯示不了雲端存儲的圖片,處理方法一:


這個方法的解決思路是: 將rich-text html中的img的src從雲端存儲的id轉變為http形式的臨時url.微信中提供了這個方法.wx.cloud.getTempFileURL.

這個方法的缺陷也是rich-text的缺陷是:這樣轉換的img不能預覽,rich-text是一個封閉的容器,其中的image的事件js捕捉不到.因此預覽方法不能使用.

具體的操作步驟:

 1 //首先從雲端數據庫中讀取數據    
 2 db.collection('flowsDetail').doc(options.id).get({
 3         success: function (res) {
 4           // res.data 包含該記錄的數據
 5           var timestamp = Date.parse(new Date());
 6           let expiration = timestamp + 100000;
 7           wx.setStorage({
 8             key: 'flowDetail'+options.id,
 9             data: res.data,
10           })
11           wx.setStorageSync("expiration_flowDetail" + options.id, expiration);
12         
13         //得到要存入rich-text中的message.
14           var _message=res.data.message;
15           var img_index= _message.indexOf("img")
16           console.log(img_index);
17          
18       //如果message中有img
19           if (img_index>-1){
20           //找到雲端的src
21             var srcindex = _message.indexOf("cloud:");
22             var pngindex=_message.indexOf(".png");
23             var src = _message.substring(srcindex, pngindex+4);
24             console.log(src);
25          //使用wx提供的getTempFileURL的方法獲取臨時url
26             wx.cloud.getTempFileURL({
27               fileList: [src],
28               success: res => {
29                 // 將原來message中的img的src 雲端id轉換為零時的fileId
30                // console.log(res.fileList[0].tempFileURL);
31                 var  newMess = _message.replace(src, res.fileList[0].tempFileURL);
32                 //設置message
33                 _this.setData({ message: newMess});
34               },
35             })
36           }else{
37             console.log("沒有img");
38           }                                        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM