美文网首页小程序让前端飞猫码
小程序 — 保存图片到手机相册②(用户授权等)

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

作者: ComfyUI | 来源:发表于2018-09-11 17:07 被阅读17次

    前言:上章基本实现保存图片到手机相册的功能了,但是还有这么几个问题没有解决,本章解决这几个问题。
    GitHub:https://github.com/Ewall1106/miniProgramDemo

    1、授权问题

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

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

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

    图片来自小程序官网
    wx.getSetting({
        success(res) {
            if (!res.authSetting['scope.writePhotosAlbum']) {
              // ... 
            } else {
              // .... 
            }
        }
    });
    

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

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

    图片来自小程序官网
    wx.getSetting({
        success(res) {
            if (!res.authSetting['scope.writePhotosAlbum']) {
                wx.authorize({
                    scope: 'scope.writePhotosAlbum',
                    success() {
                      // ...
                    },
                    fail() { 
                    } 
                });
            } else {
                // ...
            }
        }
    });
    

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

    图片来自小程序官网 授权问题处理

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

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

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

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

      添加downloadFile合法域名

    参考学习
    https://developers.weixin.qq.com/miniprogram/dev/api/
    https://mp.weixin.qq.com/wxopen/home
    https://github.com/Ewall1106/miniProgramDemo

    相关文章

      网友评论

      • 776738eb8aaf:那想说,不能用opensetting用什么?
        ComfyUI:@阿毛_1cd5 是的,你可以做一个假的模态框,里面放个button按钮实现再次让用户授权的功能
        776738eb8aaf:@Ewall_ 那现在是用button的open-type="getsetting"去设置吗?
        ComfyUI:@阿毛_1cd5 不能了
      • 776738eb8aaf:您好,我是用原生写的,这里的wepy就没有定义,那我该怎么做?
        ComfyUI:@阿毛_1cd5 ?
        776738eb8aaf:我又写了一遍,模拟器上可以,但是真机不行:sob:
        ComfyUI:@阿毛_1cd5 把wepy换成wx
      • 776738eb8aaf:还没有太明白你的代码,我们在点击保存时,如果点击取消,不就意味着不愿意保存吗?这时候你去调用openSetting不是很奇怪,感觉有点不太符合,但是如果不写,这个又会陷入取消之后无法再次点击的问题,有点苦恼。
        ComfyUI:第一次取消并不需要调用openSetting,我这里代码有问题,我改一下,抱歉
        ComfyUI:第一次点击保存、授权用户取消了,那么就完事了;如果日后用户又想保存图片了,在他再次点击保存的时候,应该调用openSetting,让用户开启保存图片的权限。

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

      本文链接:https://www.haomeiwen.com/subject/ryesgftx.html