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

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

相关文章

来自专栏salesforce零基础学习

salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)

项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考。 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔...

236100
来自专栏开源优测

python selenium2 常用方法

完整路径 C:\Python27\Lib\site-packages\selenium\webdriver\remote\webdrive...

34240
来自专栏公众号_薛勤的博客

基于Netty实现可自动渲染HTML页面的静态Web服务器

Github:https://github.com/yueshutong/JerryServer/ 码云:https://gitee.com/zyzpp/J...

46820
来自专栏不想当开发的产品不是好测试

centos下安装pip2

# 背景 新机器,安装完python2后发现竟然不自带pip,按照我的理解现在新版本的python,不管是2还是3都会自带pip的。没办法,需要自己去安装pip...

31260
来自专栏Python疯子

Airtest连接Android和iOS进行脚本测试和编写脚本

Airtest一般用于app测试,因为可以通过图片进行识别点击,也可以通过点坐标进行识别点击,所以也可以制作游戏点击脚本和应用的点击脚本。 Airtest可以...

94430
来自专栏魏艾斯博客www.vpsss.net

去掉 WordPress 网页图片默认链接功能

18330
来自专栏ionic3+

Cordova插件扩展——Themeablebrowser自拷贝图片

插件全名叫: cordova-plugin-themeablebrowser 这个插件会弹出一个浏览器窗口,打开外部网页,功能比较强大,能自定义导航工具栏、...

14750
来自专栏淡定的博客

Nuxt基本安装与使用

1.4K30
来自专栏游戏杂谈

禁用iOS的UIView长按默认操作

很多时候需要禁用移动设备的默认行为,比如长按一个a链接的按钮(href写的是javascript:;)会提示是否打开/取消。而-webkit-touch-cal...

15320
来自专栏王磊的博客

art-template用户注册方法

应用场景nodejs Express框架,使用art-template模板引擎。 后台注册方法代码: var template = require('art-t...

41480

扫码关注云+社区

领取腾讯云代金券