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

简介: 前言:上章基本实现保存图片到手机相册的功能了,但是还有这么几个问题没有解决,本章解决这几个问题。GitHub:https://github.com/Ewall1106/miniProgramDemo1、授权问题(1)如果用户第一次点击的时候,对弹出来的微信授权弹窗点击了拒绝,那么之后点击保存图片就没用了:如果用户第一次点击了拒绝授权(2)所以我们应该做下用户授权判断,首先我们应该调用wx.getSetting(OBJECT)方法获取用户的当前设置,看看用户请求过的权限中是否存在保存到相册这个权限。

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

1、授权问题

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

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

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

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

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

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

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

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

img_8df6f1e1332e9b5b006c90690278336c.png
图片来自小程序官网
img_3ae02aad5b511112b0fdecf1d0010339.png
授权问题处理

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

img_2f9f83cf833aef9d7504bc7aed4ca51d.png
问题

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

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

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

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

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

    img_1a6761853e757fca128e80686e07aa87.png
    项目设置

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

    img_0accd0e79c0b82d1cfcb297acbd5a372.png
    添加downloadFile合法域名

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

目录
相关文章
|
6月前
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
7月前
|
存储 小程序 前端开发
微信小程序与Java后端实现微信授权登录功能
微信小程序极大地简化了登录注册流程。对于用户而言,仅仅需要点击授权按钮,便能够完成登录操作,无需经历繁琐的注册步骤以及输入账号密码等一系列复杂操作,这种便捷的登录方式极大地提升了用户的使用体验
2404 12
|
小程序
小程序消除图片下边距的三个方法
小程序消除图片下边距的三个方法
229 69
|
11月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
2880 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
11月前
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
264 0
|
11月前
|
小程序
如何将CCBUPT全能墙小程序添加到手机桌面
如何将CCBUPT全能墙小程序添加到手机桌面
141 0
|
运维 小程序 前端开发
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
小程序开发问题之在小程序中调用my.chooseImage接口让用户选择图片如何解决
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
8566 2
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
417 0
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
227 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用

热门文章

最新文章