一、須要先受權,調用 wx.getSetting()方法
二、保存的圖片路徑參數,不支持網絡路徑,而在咱們渲染頁面時,用到的圖片有很大多是網絡路徑,這時候咱們須要先把網絡路徑轉爲可用的本地路徑,wx.getImageInfo()方法能夠知足須要小程序
一、長按後直接保存未免潦草了些,考慮到用戶體驗,加入 wx.showActionSheet()
二、若是用戶拒絕受權 或者 之前拒絕過受權,這時候也應該給他提示,或者展現再次打開受權的入口
微信小程序
將將!而後就能夠開始寫代碼了:瀏覽器
<image src="{{url}}" data-url="{{url}}" bindlongpress="saveImage"></image>
// 長按保存功能--受權部分 saveImage (e) { let _this = this wx.showActionSheet({ itemList: ['保存到相冊'], success(res) { let url = e.currentTarget.dataset.url; wx.getSetting({ success: (res) => { if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum', success: () => { // 贊成受權 _this.saveImgInner(url); }, fail: (res) => { console.log(res); wx.showModal({ title: '保存失敗', content: '請開啓訪問手機相冊權限', success(res) { wx.openSetting() } }) } }) } else { // 已經受權了 _this.saveImgInner(url); } }, fail: (res) => { console.log(res); } }) }, fail(res) { console.log(res.errMsg) } }) }, // 長按保存功能--保存部分 saveImgInner (url) { wx.getImageInfo({ src: url, success: (res) => { let path = res.path; wx.saveImageToPhotosAlbum({ filePath: path, success: (res) => { console.log(res); wx.showToast({ title: '已保存到相冊', }) }, fail: (res) => { console.log(res); } }) }, fail: (res) => { console.log(res); } }) },
文章寫的比較正序,參考的是這篇倒序文章,喜歡倒序的筒子們能夠去看下這篇: https://www.jianshu.com/p/e59...
(雖然很痛恨沒有視頻效果的文章,但是錄好了視頻的我 實在找不到上傳視頻的按鈕!我好難!!!)微信