wx.saveImageToPhotosAlbum(Object object)
保存图片到系统相册。
Object object
属性 |
类型 |
默认值 |
必填 |
说明 |
filePath |
string |
|
是 |
图片文件路径,可以是临时文件路径或永久文件路径 (本地路径) ,不支持网络路径 |
保存图片功能,由于不能保存网络图片,所以需要先调用wx.downloadFile方法下载到本地临时空间路径:
wx.downloadFile({
url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
success (res) {
let imageFilePath = res.tempFilePath
wx.saveImageToPhotosAlbum({
filePath: imageFilePath,
success(res){
wx.showToast({
title: "保存成功",
})
},
fail(){
wx.showToast({
title: "保存失败",
})
}
})
}
})
为了避免用户一开始就拒绝相册授权,导致不能再次保存图片,需要重新调起授权:
//绑定事件
<view bindtap="saveImage">保存图片</view>
saveImage(){
wx.downloadFile({
url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
success (res) {
let imageFilePath = res.tempFilePath
wx.saveImageToPhotosAlbum({
filePath: imageFilePath,
success(res){
wx.showToast({
title: "保存成功",
})
},
fail(err){
if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response") {
// 这边微信做过调整,必须要在按钮中触发,因此需要在弹框回调中进行调用
wx.showModal({
title: '提示',
content: '需要您授权保存相册',
showCancel: false,
success: () => {
wx.openSetting({
success(settingdata) {
if (settingdata.authSetting['scope.writePhotosAlbum']) {
wx.showModal({
title: '提示',
content: '获取权限成功,再次点击保存图片',
showCancel: false,
})
} else {
wx.showModal({
title: '提示',
content: '获取权限失败,将无法保存到相册哦~',
showCancel: false,
})
}
}
})
}
})
}
}
})
}
})
}
如果用户一开始拒绝授权,上面代码再次点击就可以wx.openSetting设置轮回调起重新授权访问相册了