- 当前 Bug 的表现(可附上截图)
代码走到wx.saveImageToPhotosAlbum 没任何反应,
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
//下载图片
share: function () {
let that = this;
wx.canvasToTempFilePath({
canvasId: 'myCanvas',
success: function (res) {
console.log(res.tempFilePath)
that.setData({
tempFilePath: res.tempFilePath
})
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function success(res) {
wx.showModal({
title: '成功保存图片',
content: '已成功为您保存图片到手机相册,请自行前往朋友圈分享',
success: function () {
that.setData({
friendTrue:false
})
}
})
},
fail: function fail(e) {
wx.getSetting({
success: (res) => {
console.log(res);
console.log(res.authSetting['scope.writePhotosAlbum']);
if (res.authSetting['scope.writePhotosAlbum'] == false) {
wx.openSetting({
success: (res) => {
console.log(res);
}
})
}
}
})
}
});
}
})
},
这个问题目前再iphone5.6.有问题, 我的手机是iPhone8就没有问题,再另外一个iphone8就有问题,不知道为啥,这段代码以前没有问题,最近才出现问题,不知道为啥,我一直没有动过
用我的解决方法,代码如下
// 绑定tap点击事件
submit(){
this
.getAuth(
'scope.writePhotosAlbum'
)
.then(() => {
// 在这里处理接下里的流程
}, ()=>{
console.log('请开启保存到相册权限');
})
}
// 小程序校验权限
getAuth(key){
return
new
Promise((resolve, reject)=>{
if
(!ctx.isXCX){
return
resolve();
}
wx.getSetting({
success(auth) {
// 用户授权过
if
(auth.authSetting.hasOwnProperty(key)) {
// 拒绝
if
(!auth.authSetting[key]){
wx.openSetting({
success: res => {
// 用户开启
if
(res.authSetting[key]) {
resolve();
}
else
{
reject();
}
},
fail() {
reject();
}
})
}
else
{
// 成功授权
resolve();
}
}
else
{
// 用户一次都没有授权过
wx.authorize({
scope: key,
success(res) {
// 成功授权
resolve();
},
fail() {
// 拒绝授权
reject();
}
})
}
}
})
})
},
老哥,你现在点击保存,拒绝授权以后,再点击会opensetting吗?
https://www.cnblogs.com/xuzhengzong/p/7715810.html 你看一下这个网址,里面写的是地位位置,原理都一样,我是参考这个写的
我之前是判断返回信息是不是用户拒绝授权,是的话就opensetting,之前都好用的突然不触发了。刚才改成了判断authsetting,就上面那段,也没触发,我想知道你那个现在能触发不?
我在想是不是现在只能通过button来绑定opensetting事件了?
你如果同意保存图片的话,出错吗? 方便看一下你代码吗?(我之前是重新删了小程序,没有弹出那个允许保存图片的框,然后点击按钮没有反应)建议你把开发者工具更新到最新
同意的话没有问题,就是不同意之后再点击不会弹框也不会跳去权限设置页。刚才看了那个通知下面的评论,好像写在回调里的opensetting也是不会生效的。
老哥,问题解决了没有?我的也是这样,之前好好的,现在走到保存那直接就跳过了;授权提示框都没跳出来。解决了麻烦分享一下。多谢!!!
我已经解决了,我不知道你的小程序 是否用到位置信息,用的话你需要到app.json去设置一下 https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#全局配置 这个网址https://www.cnblogs.com/xuzhengzong/p/7715810.html 我再网上找到的,对于那个不管是地址,还是保存图片都很实用,你可以看着写一下,还有你想测试的话,最好开发者工具升级到最新版本,
老哥我感觉我们是不是遇到了一样的问题,opensetting无效了?
麻烦提供出现问题的机型和微信版本,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
https://developers.weixin.qq.com/s/EdMB8BmK7O50 这个是链接你看一下吧, 目前再iPhone8手机上能看到
这边测试没有复现问题,麻烦真机打开调试--vconsole--system截图看看
你好,问一下,你这测试是在手机测试,还是在开发工具测试的? https://developers.weixin.qq.com/s/fa24nCmX795K 这个是新的代码片段, 我做的测试是在开发工具里可以,在手机不行
这是截图
这边测试没有复现问题,是真机测试的,确认是否有开启保存到相册的权限呢?