WeChat アプレットでは、モーメントを共有したり、写真やビデオをアルバムに保存したりするには承認が必要ですが、これが頻繁に発生します。場合によっては、ユーザーが間違いを犯し、承認ポップアップを最初に拒否した後、WeChat はユーザーが承認を拒否したと判断し、再度承認ポップアップを呼び出すことはありません。
1. 認可状況の分析
- ユーザーが初めて使用するとき、認証がポップアップ表示されます
- ユーザーは保存する権限を持っています
- ユーザーが拒否したため、承認を呼び出す必要があります
2. コードの実装
checkAuthorize: function (e) {
var that = this
wx.getSetting({
success: function (res) {
console.log(res)
//判断是否已经授权
if (res.authSetting["scope.writePhotosAlbum"]) {
//已经授权,进行下载图片、视频,后进行保存
that.downloadVideo(e)
} else if (!res.authSetting.hasOwnProperty("scope.writePhotosAlbum")) {
//用户第一次使用,调起授权
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
//授权成功,进行下载图片、视频,后进行保存
that.downloadVideo(e)
}
})
} else {
//已经拒绝授权,去到设置页面授权
wx.showModal({
title: "未授权添加到相册",
content: "下载素材保存到相册,需打开添加到相册的权限开关",
confirmColor: "#00D2EC",
confirmText: "去设置",
success(res){
if(res.confirm) {
wx.openSetting({})
}
}
})
}
},
})
},
downloadVideo: function (e) {
var item = this.data.materialList[e.currentTarget.dataset.index]
var that = this
this.data.downloadCount = 0
item.videoList.forEach(video => {
wx.downloadFile({
url: video,
success: function (res) {
console.log(res)
wx.saveVideoToPhotosAlbum({
filePath: res.tempFilePath,
success(res) {
that.data.downloadCount++;
if (that.data.downloadCount == item.videoList.length) {
that.downloadImage(e)
}
}
})
}
})
});
},