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

首頁 > 編程 > JavaScript > 正文

詳解基于mpvue微信小程序下載遠程圖片到本地解決思路

2019-11-19 11:32:58
字體:
來源:轉載
供稿:網友

說明

最近有些空余時間開始著手優化我那個吉他自學小助手的微信小程序,其中有一個功能是下載吉他譜到本地,開始以為只是很簡單的拿到圖片url然后down下來就好了,其實不然...最終通過google解決了這個問題,現在記錄一下,以便后續翻閱。

少廢話先看東西

演示.gif

流程梳理

獲取圖片遠程地址數組-->遍歷拿到圖片緩存(臨時地址)(wx.getImageInfo)-->保存緩存圖片到本地(wx.saveImageToPhotosAlbum)

完整代碼

子組件代碼邏輯

//子組件download-file.vue<template> <div></div></template><script>export default { props: {  urls: {   default: ""http://通過父組件傳遞遠程圖片路徑數組  } }, watch: {  urls() {   if (this.urls.length > 0) {    this.downLoadImage(this.urls);//監聽變化   }  } }, methods: {  //拿到圖片的臨時路徑  getImageInfo(url) {   var cache = {};   return new Promise((resolve, reject) => {    /* 獲得要在畫布上繪制的圖片 */    if (cache[url]) {     resolve(cache[url]);    } else {     const objExp = new RegExp(      /^http(s)?:////([/w-]+/.)+[/w-]+(//[/w- .//?%&=]*)?/     );     if (objExp.test(url)) {      wx.getImageInfo({       src: url,       complete: res => {        if (res.errMsg === "getImageInfo:ok") {         cache[url] = res.path;         resolve(res.path);        } else {         reject(new Error("getImageInfo fail"));        }       }      });     } else {      this.cache[url] = url;      resolve(url);     }    }   });  },  downLoadImage(urls) {   const vm = this;   let temp = [];   if (urls.length > 0) {    urls.map((item, index) => {     vm.getImageInfo(item).then(res => {      temp.push(res);      vm.saveImageToLocal(res);     });    });   }  },  saveImageToLocal(path) {   //保存臨時圖片到本地   wx.saveImageToPhotosAlbum({    filePath: path,    success(res) {     console.log("success");    },    fail: function(res) {     console.log(res);    }   });  } }};</script><style></style>

在父組件中引用

//news/detail.vue//省略代碼...<button @click="download">下載</button>//省略代碼...<download-file :urls="downLoadUrls" ref="myDownload"></download-file>//省略代碼...async download() {  let vm = this;  const temp = [];  let data = await vm.$net.get(vm.$apis.articleDetails, {    id: vm.item.id  });  if (data.article.body.length > 0) {   data.article.body.map((item, index) => {    if (item.type == "img") {     temp.push(item.data);    }  }); } vm.downLoadUrls = temp;},

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开原市| 广州市| 禹州市| 武安市| 万安县| 达日县| 南川市| 西城区| 湖南省| 泽普县| 缙云县| 高州市| 武功县| 永登县| 屏山县| 遵义市| 曲水县| 仁寿县| 石首市| 乌鲁木齐县| 屏东县| 驻马店市| 鸡泽县| 周宁县| 庆元县| 郧西县| 犍为县| 历史| 灌云县| 连平县| 南乐县| 金华市| 洪泽县| 忻州市| 定襄县| 肥西县| 湖北省| 辉县市| 察隅县| 香港| 光泽县|