为了账号安全,请及时绑定邮箱和手机立即绑定

小程序 — 保存图片到手机相册②(用户授权等)

标签:
Html/CSS

1、授权问题

(1)如果用户第一次点击的时候,对弹出来的微信授权弹窗点击了拒绝,那么之后点击保存图片就没用了:

webp

如果用户第一次点击了拒绝授权

(2)所以我们应该做下用户授权判断,首先我们应该调用wx.getSetting(OBJECT)方法获取用户的当前设置,看看用户请求过的权限中是否存在保存到相册这个权限。

webp

图片来自小程序官网

wx.getSetting({
    success(res) {        if (!res.authSetting['scope.writePhotosAlbum']) {          // ... 
        } else {          // .... 
        }
    }
});

(3)如果用户没有保存到相册这个权限,那么,我们就应该使用wx.authorize(OBJECT)向用户发起授权请求。

调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。

webp

图片来自小程序官网

wx.getSetting({
    success(res) {        if (!res.authSetting['scope.writePhotosAlbum']) {
            wx.authorize({
                scope: 'scope.writePhotosAlbum',
                success() {                  // ...
                },
                fail() { 
                } 
            });
        } else {            // ...
        }
    }
});

(4)当授权成功,我们应该执行保存图片到本地的saveImage函数(上一章写好的),否则,如果fail则执行wx.opoenSetting(OBJECT)方法调起客户端设置界面让用户可以再次同意授权。

webp

图片来自小程序官网

webp

授权问题处理

(5)但是这里还有一个评论区@阿毛_1cd5提出来的问题:

webp

问题

怎么解决?我们用个isFirst变量将用户第一次进来的时候用个值记录下来,如果是第一次进来且点击取消授权那么我们就不调用openSetting,反之调用。

webp

记录用户是否是第一次点击取消授权

这样我们就解决了在保存图片的时候关于用户授权的问题。

2、手机打开调试模式可以保存图片,但是关闭调试模式就不能保存图片了。

  • 这个问题很简单,因为在打开调试模式的时候,我们一般勾选了不校验合法域名,所以可以保存图片:

    webp

    项目设置


  • 因为将图片保存到本地需要调用wx.downloadFile(OBJECT)这个api,所以解决的方法就是在微信公众平台中添加downloadFile合法域名就可以解决这个问题了

    webp

    添加downloadFile合法域名



作者:Ewall_
链接:https://www.jianshu.com/p/296a3f7ac24d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消