項目中有個保存二維碼到相冊的功能,所以涉及到用戶是否授權相冊權限的問題。廢話不多說,直接上干貨...
功能邏輯:
先檢查用戶請求過的權限中是否允許"保存到相冊"權限,如果沒有請求過這個權限,應該向用戶發起授權請求(彈窗授權),如果請求過這個權限,并且授權了,那就保存圖片,顯示保存成功;如果請求過,但是是拒絕的,就跳到設置頁,重新授權。
上代碼:
<view bindtap='save'>保存圖片到相冊</view>
//點擊保存圖片 save () { let that = this //若二維碼未加載完畢,加個動畫提高用戶體驗 wx.showToast({ icon: 'loading', title: '正在保存圖片', duration: 1000 }) //判斷用戶是否授權"保存到相冊" wx.getSetting({ success (res) { //沒有權限,發起授權 if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum', success () {//用戶允許授權,保存圖片到相冊 that.savePhoto(); }, fail () {//用戶點擊拒絕授權,跳轉到設置頁,引導用戶授權 wx.openSetting({ success () { wx.authorize({ scope: 'scope.writePhotosAlbum', success() { that.savePhoto(); } }) } }) } }) } else {//用戶已授權,保存到相冊 that.savePhoto() } } }) },//保存圖片到相冊,提示保存成功 savePhoto() { let that = this wx.downloadFile({ url: that.data.imgUrl, success: function (res) { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success(res) { wx.showToast({ title: '保存成功', icon: "success", duration: 1000 }) } }) } }) }
注:如果你不點擊"保存到相冊"的時候去看設置頁,是沒有"保存到相冊"的開關的,只有點過了保存到相冊,請求過這個彈窗授權后,設置頁才會有"保存到相冊"的開關
總結
以上所述是小編給大家介紹的微信小程序實現保存圖片到相冊功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答