国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

微信小程序之多文件下載的簡單封裝示例

2024-07-22 01:17:14
字體:
來源:轉載
供稿:網友

需求

需要生成一個宣傳的圖片分享到朋友圈,這個宣傳圖片包含二維碼,包含不同的背景圖片和不同的文字。對于這種圖片生成,我們考慮過使用服務端生成,但是這樣會比較耗服務器性能,所以最終決定使用本地生成。

首先小程序有一個限制,包不能大于2m,而且我們可能多個背景圖,所以計劃把背景圖和二維碼圖片放在服務端,這樣可以減少小程序包的大小,也可以靈活的切換背景圖。

在繪制分享圖的時候,可以直接使用互聯網地址,但是遇到了一個問題,有可能不能生成圖片,所以我們需要把這個圖片文件下載下來。

下載文件的方法微信有API,但是返回的是文件的臨時路徑,只在小程序本次啟動期間可以正常使用,如需持久保存,需在主動調用 wx.saveFile,才能在小程序下次啟動時訪問得到。

所以我們先把下載文件和保存文件封裝

封裝下載并且保存一個文件

這個方法比較簡單

參數:一個對象,包含

    id 需要下載文件的id,如果不傳默認是下載的url,之所以需要id,是因為我們要做多文件下載,可以區分下載的是一個文件 url 下載文件的網絡地址(需要微信小程序后臺配置,具體配置方法請參考微信官方文檔) success 成功回調 返回參數是一個對象 包含 id,savedFilePath fail 失敗回調 ,下載失敗,保存都是都算失敗
/** * 下載保存一個文件 */function downloadSaveFile(obj) {  let that = this;  let success = obj.success;  let fail = obj.fail;  let id = "";  let url = obj.url;  if (obj.id){    id = obj.id;  }else{    id = url;  }  // console.info("%s 開始下載。。。", obj.url);  wx.downloadFile({    url: obj.url,    success: function (res) {      wx.saveFile({        tempFilePath: res.tempFilePath,        success: function (result) {          result.id = id;          if (success) {            success(result);          }        },        fail: function (e) {          console.info("保存一個文件失敗");          if (fail) {            fail(e);          }        }      })    },    fail: function (e) {      console.info("下載一個文件失敗");      if (fail) {        fail(e);      }    }  })}

使用下載方法(wx.downloadFile(obj))需要在微信小程序配置服務器域名,服務器域名請在 小程序后臺-設置-開發設置-服務器域名 中進行配置 ,具體請參考 微信官方文檔

封裝多文件下載并且保存

多文件下載并且保存,強制規定,必須所有文件下載成功才算返回成功

參數:一個對象,包含

    urls 下載地址 數組,支持多個 url下載 [url1,url2] success 下載成功 (必須所有文件下載成功才算返回成功) 回調參數 map ,key(id) -> value ({id,savedFilePath}) fail 下載失敗,只要有一個方法失敗就調用失敗
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 綦江县| 麻江县| 福鼎市| 凤冈县| 连州市| 定襄县| 儋州市| 贵定县| 双牌县| 横山县| 东乡| 芒康县| 满城县| 遂宁市| 宁都县| 定边县| 镇远县| 嘉黎县| 双桥区| 佛冈县| 临汾市| 府谷县| 湘阴县| 香港| 郸城县| 正定县| 岐山县| 敦煌市| 白河县| 江达县| 托克逊县| 芒康县| 淄博市| 通城县| 长顺县| 廉江市| 周口市| 定远县| 汉阴县| 吴江市|