小程序保存图片拒绝授权解决方法
//把当前画布指定区域的内容导出生成指定大小的图片
canvasToTempFilePath({
canvasId: 'shareCanvas'
}).then((res) => {
//获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
getSetting().then((getSettingRes) => {
//判断是否有过“scope.writePhotosAlbum”这个授权
if(!getSettingRes.authSetting["scope.writePhotosAlbum"]){
//没有授权过则提前向用户发起授权请求
authorize({
scope: "scope.writePhotosAlbum",
}).then((res) => {
console.log("authorize",res)
},(err) => {
//授权失败则提示 因为官方调整有按钮才能调起openSetting这个方法
wx.showModal({
title: '提示',
content: '若点击不授权,将无法使用保存图片功能',
cancelText:'不授权',
cancelColor:'#999',
confirmText:'授权',
confirmColor:'#f94218',
success(res) {
if (res.confirm) {
//调起客户端小程序设置界面,返回用户设置的操作结果。
//设置界面只会出现小程序已经向用户请求过的权限。
openSetting()
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
})
}else{
//授权过则调用保存图片到相册的方法
saveImageToPhotosAlbum({
filePath: res.tempFilePath
}).then((res) => {
console.log("saveImageToPhotosAlbum",res)
wx.showToast({
title: "图片保存成功",
icon: 'none',
duration: 2000
})
this.setData({
sharehidden: true,
})
})
}
})
})
提示:以上方法皆是微信原生api的异步封装