专栏首页vue学习小程序 — 保存图片到手机相册②(用户授权等)

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

前言:上章基本实现保存图片到手机相册的功能了,但是还有这么几个问题没有解决,本章解决这几个问题。 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小程序 — 保存图片到手机相册

    (1)要保存图片到手机相册中,所以首先我们来看看保存图片的api方法是什么? 我们使用的是wx.saveImageToPhotosAlbum(OBJECT)这...

    Ewall
  • 22、商品列表页

    (3)商品列表 对于商品列表我们可以把里面的单个商品item用封装成一个组件从而实现复用。

    Ewall
  • 32、localStorage本地储存

    其实这种实现方式很不好,这章的主要意义还是在于localStorage这个知识点的运用,下章我们学着使用vuex来进行这个地址状态的管理。

    Ewall
  • Linq中连接主要有组连接、内连接、左外连接、交叉连接四种

    Linq中连接主要有组连接、内连接、左外连接、交叉连接四种。各个用法如下。 注:本文内容主要来自《Linq实战》,本例中用到的对象请见文章底部。 1、 组连接...

    逸鹏
  • 5.16 VR扫描:Oculus推出Sensor Bounds 传感测试器;首个SteamVR输入系统发布

    VRPinea
  • 究竟什么才是学习?

    我一直以为,学习就应该是拿着学习的资料,花大块的时间在图书馆里面按照计划一字一句、从头到尾的进行研习。但慢慢的我发现,我对学习的理解太狭隘,我一直在错误的进行学...

    compassblog
  • 运营小白如何面试运营岗?干货送上!

    该经历发生在大四那年(2016年),当时机缘巧合获得猎头内推,经过3轮面试拿下SP offer 运营岗

    牛客网
  • ABC108C - Triangular Relationship(打表)

    给出$n, k$,求出满足$a+b, b + c, c + a$都是$k$的倍数的三元组$a, b, c$的个数,$1 \leqslant a, b, c \l...

    attack
  • ES系列之原来查看文档数量有这么多姿势

    事实上远不止这么简单,比如嵌套文档的情况等。相信你看了我这篇文章之后你会感叹原来统计文档有这么多讲究啊。

    用户7634691
  • 从零开始的Devops-整体设计

    这部分可能是前置,所有系统用统一认证登陆,用域名访问,负载均衡,从外网到内网登陆。

    于欣轩

扫码关注云+社区

领取腾讯云代金券