首先询问用户是否同意授权,同意则直接授权,否则弹框提示用户没有授权将影响后续操作。引导用户去设置页开启授权wx.openSetting
。
wx.getSetting({
success(res) {
//没有权限,发起授权
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
//用户允许授权,保存图片到相册
that.chooseImg()
},
fail(err) {
//用户点击拒绝授权,跳转到设置页,引导用户授权
that.showSettingToast()
}
});
} else {
//用户已授权,保存到相册
that.chooseImg()
}
}
});
// 打开权限设置页提示框
showSettingToast(e) {
wx.showModal({
content: '检测到您没打开此小程序的此权限,是否去设置打开?',
confirmText: "确认",
cancelText: "取消",
success: function(res) {
//点击“确认”时打开设置页面
if (res.confirm) {
wx.openSetting({
success: (res) => {}
})
} else {
console.log('用户点击取消')
}
}
});
},
保存图片到本地,保存图片也需要先查询用户是否同意保存到本地
// 保存图片到本地
savePhoto() {
let that = this
uni.getImageInfo({
src: that.currentItemUrl,
success: function(res) {
console.log(res);
//保存图片
uni.saveImageToPhotosAlbum({
filePath: res.path,
success(result) {
uni.showToast({
title: result
})
}
})
}
})
},
图片转为base64
imgBase64(tempPath) {
// 转base64
wx.getFileSystemManager().readFile({
filePath: tempPath, //选择图片chooseImage返回的相对路径
encoding: "base64", //这个是很重要的
success: res => { //成功的回调
//返回base64格式
let photo = res.data
this.storeUpdatedImg(photo)
}
})
},