亚洲天堂色av_香蕉黄色一级片_蜜臀av网站_国产足控福利视频一区_久久av伊人_av网址在线

18842388900

網(wǎng)站建設(shè) APP開發(fā) 小程序

Article/文章

記錄成長(zhǎng)點(diǎn)滴 分享您我感悟

您當(dāng)前位置>首頁 > 知識(shí) > 軟件開發(fā)

微信小程序中保存網(wǎng)絡(luò)圖片的方法介紹(代碼示例)

發(fā)表時(shí)間:2019-05-20 08:49:54

文章來源:沈陽網(wǎng)站建設(shè)

標(biāo)簽:微信開發(fā) 微信小程序 小程序

分享:

瀏覽次數(shù):0

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于微信小程序中保存網(wǎng)絡(luò)圖片的方法介紹(代碼示例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

該功能需要添加appid才能進(jìn)行正常的測(cè)試。

小程序的文檔中我們得知,wx.saveImageToPhotosAlbum 是用來保存圖片到相冊(cè)的。

但是仔細(xì)一看會(huì)發(fā)現(xiàn)這個(gè)接口的filePath參數(shù)只接受臨時(shí)文件路徑或永久文件路徑,不支持網(wǎng)絡(luò)圖片路徑,意味著我們不能直接調(diào)用這個(gè)接口。。

因此先需要把該文件下載至本地,使用 wx.downloadFile 。

但值得注意的是小程序只可以跟指定的域名與進(jìn)行網(wǎng)絡(luò)通信,也就是說下載圖片之前,我們需要先去微信公眾者平臺(tái)的開發(fā)設(shè)置里設(shè)置uploadFile合法域名。

示例代碼如下:

<!-- index.wxml --><image class="qr-code" src="{{url}}" mode="aspectFill" /><button class="text" bindtap="saveImage">保存圖片</button>
// index.jsconst app = getApp()Page({  data: {    url: 'https://avatars3.githubusercontent.com/u/23024075?s=460&v=4'  },  // 保存圖片  saveImage() {    this.wxToPromise('downloadFile', {        url: this.data.url      })      .then(res => this.wxToPromise('saveImageToPhotosAlbum', {        filePath: res.tempFilePath      }))      .then(res => {        // do something        wx.showToast({ title: '保存成功~',icon: 'none' });      })      .catch(err) => {        console.log(err);        // 如果是用戶自己取消的話保存圖片的話        // if (~err.errMsg.indexOf('cancel')) return;      })  },  /**   * 將 callback 轉(zhuǎn)為易讀的 promise   * @returns [promise]   */  wxToPromise(method, opt) {    return new Promise((resolve, reject) => {      wx[method]({        ...opt,        success(res) {          opt.success && opt.success();          resolve(res)        },        fail(err) {          opt.fail && opt.fail();          reject(err)        }      })    });  },})

然后理論上就可以保存圖片了... 用戶第一次在我們的小程序使用保存圖片這個(gè)功能是會(huì)彈出一個(gè)授權(quán)彈框,如果用戶手滑點(diǎn)了拒絕授權(quán)后再點(diǎn)一次保存圖片,然后就會(huì)發(fā)現(xiàn)什么反應(yīng)都沒有了。。。

出現(xiàn)這樣的原因是因?yàn)檫@個(gè)授權(quán)彈框只會(huì)出現(xiàn)一次,所以我們得想辦法再讓用戶重新授權(quán)一次。這時(shí)就想到使用 wx.authorize .

但是經(jīng)過測(cè)試后發(fā)現(xiàn),使用 wx.authorize 后,會(huì)報(bào) authorize:fail auth deny 的錯(cuò)誤。然后經(jīng)過查閱資料得知:

如果用戶未接受或拒絕過此權(quán)限,會(huì)彈窗詢問用戶,用戶點(diǎn)擊同意后方可調(diào)用接口;

如果用戶已授權(quán),可以直接調(diào)用接口;

如果用戶已拒絕授權(quán),則不會(huì)出現(xiàn)彈窗,而是直接進(jìn)入接口 fail 回調(diào)。請(qǐng)開發(fā)者兼容用戶拒絕授權(quán)的場(chǎng)景。

emmm... 那這樣效果當(dāng)然不符合我們預(yù)期,只能在換一種方式。這時(shí)就想到了使用<button open-type="openSetting"/>,在交互上做一個(gè)提示彈框,引導(dǎo)用戶重新授權(quán):

<image class="qr-code" src="{{url}}" mode="aspectFill" /><button class="text" bindtap="saveImage">保存圖片</button><!-- 簡(jiǎn)陋版提示 --><view wx:if="{{showDialog}}" class="dialog-wrap">  <view class="dialog">    這是一段提示用戶授權(quán)的提示語    <view class="dialog-footer">      <button        class="btn"        open-type="openSetting"        bindtap="confirm" >         授權(quán)      </button>      <button class="btn" bindtap="cancel">取消</button>    </view>  </view></view>
const app = getApp()Page({  data: {    url: 'https://avatars3.githubusercontent.com/u/23024075?s=460&v=4',    showDialog: false,  },  saveImage() {    this.wxToPromise('downloadFile', {        url: this.data.url      })      .then(res => this.wxToPromise('saveImageToPhotosAlbum', {        filePath: res.tempFilePath      }))      .then(res => {        console.log(res);        // this.hide();        wx.showToast({          title: '保存成功~',          icon: '沈陽小程序制作

<a href=http://www.www.hfbzsm.cn target=_blank class=infotextkey>沈陽<a href=http://www.www.hfbzsm.cn target=_blank class=infotextkey>軟件開發(fā)</a></a>,<a href=http://www.www.hfbzsm.cn target=_blank class=infotextkey>沈陽<a href=http://www.www.hfbzsm.cn target=_blank class=infotextkey>軟件公司</a></a>

none', }); }) .catch(({ errMsg }) => { console.log(errMsg) // if (~errMsg.indexOf('cancel')) return; if (!~errMsg.indexOf('auth')) { wx.showToast({ title: '圖片保存失敗,稍后再試', icon: 'none' }); } else { // 調(diào)用授權(quán)提示彈框 this.setData({ showDialog: true }) }; }) }, // callback to promise wxToPromise(method, opt) { return new Promise((resolve, reject) => { wx[method]({ ...opt, success(res) { opt.success && opt.success(); resolve(res) }, fail(err) { opt.fail && opt.fail(); reject(err) } }) }); }, confirm() { this.setData({ showDialog:false }) }, cancel() { this.setData({ showDialog: false }) }})

微信開發(fā),微信小程序,小程序

相關(guān)案例查看更多

主站蜘蛛池模板: 日本不卡视频 | 女人高潮内射99精品 | 欧洲亚洲激情 | 天天操人人爽 | 国产不卡视频一区二区三区 | 呻吟求饶的人妻中文字幕 | 亚洲国产精品一区二区999 | 国产一级a毛片视频爆浆 | 久草女人| 亚洲天堂中文在线观看 | 天天操天天干天天操 | 亚洲性图一区二区 | 国产成人免费一区二区60岁 | 四虎影库永久在线 | 亚洲美女视频在线观看 | 国产精品自拍500 | 国产伦精品一区二区三区视频孕妇 | 亚洲一区二区中文播放av | 337p日本欧洲亚洲大胆鲁鲁 | 日韩精品91爱爱 | 日韩毛片观看 | 国产伊人精品 | 91看片淫黄大片91桃色 | 国产成人AV永久免费观看網站信息! | 掐住奶头用针扎进乳孔里小说 | 国产成人精品电影 | 亚洲性日韩精品一区二区 | 女性瘾者在线观看 | 亚洲特黄妇女高潮 | 91免费欧美精品 | 在线视频导航 | 91久久久久久久久久久久久 | 三级福利视频 | 国产经典毛片 | 影音先锋无码aⅴ男人资源站 | 女厕嘘嘘一区二区在线播放 | 日韩免费av乱码高清专区 | zzijzzij亚洲日本少妇jizjiz | 靠逼毛片| 欧美综合区自拍亚洲综合绿色 | 亚洲综合色区无 |