想要將圖片保存到手機相冊我將它分為以下幾步:
1. 需要知道你要保存的圖片地址
如:image = 注:需要把圖片服務器的域名加到 合法域名里面
這里會有個問題:微信是不能直接讀到我們的圖片路徑的,我們需要做如下操作,微信會返回一個他們規則的圖片地址給你。
返回的地址類似于-->>
?wx.getImageInfo({
src: image,
success: function (res) {
imageWX = res.path?
}
})
2. 調用官方提供的方法
wx.saveImageToPhotosAlbum({
? ? ? ? filePath: imageWX,

? ? ? ? success: (res) => {
? ? ? ? ? that.hideModal();
? ? ? ? ? that.hideMoments();
? ? ? ? ? wx.showToast({
? ? ? ? ? ? title: "已保存到相冊",
? ? ? ? ? ? icon: 'none',
? ? ? ? ? ? duration: 2000,
? ? ? ? ? ? mask: true
? ? ? ? ? })
? ? ? ? }
3. 如果用戶不小心拒接授權的話再次保存圖片會報:um:fail auth deny(意思就是沒有授權)
這個時候不要慌微信小程序 圖片庫微信小程序 圖片庫,我們可以重新打開設置窗口,再設置一下就ok了
wx.openSetting({
? ? ? ? ? ? success(settingdata) {
? ? ? ? ? ? ? console.error(settingdata)
? ? ? ? ? ? ? if (settingdata.authSetting["scope.writePhotosAlbum"]) {
? ? ? ? ? ? ? ? console.error("獲取權限成功,再次點擊圖片保存到相冊")
? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? console.error("獲取權限失敗")
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? })
下面奉上具體的代碼:
//保存至相冊

saveImageToPhotosAlbum: function () {
var that = this
var value = that.data.tempFilePath;// 你的圖片路徑
if (value != undefined && value != "") {
wx.saveImageToPhotosAlbum({
filePath: value,
success: (res) => {
that.hideModal();
that.hideMoments();
wx.showToast({
title: "已保存到相冊",
icon: 'none',

duration: 2000,
mask: true
})
},
fail: function (res) {
console.error(res)
//首次保存會詢問你是否授權,選是就好了
// if (res.errMsg == "saveImageToPhotosAlbum:fail auth deny") {
console.error("打開設置窗口");
wx.openSetting({
success(settingdata) {
console.error(settingdata)

if (settingdata.authSetting["scope.writePhotosAlbum"]) {
console.error("獲取權限成功,再次點擊圖片保存到相冊")
} else {
console.error("獲取權限失敗")
}
}
})
// }
}
})
}
},
總結:
· 微信保存圖片到相冊的時候會先獲取你的權限(是否授權)。
· 微信只認自己