zoukankan      html  css  js  c++  java
  • 微信小程序授权保存到相册功能

    对于授权有三种情况:

    1.用户第一次使用,弹出授权。

    2.用户已经拒绝过授权。

    3.用户已经授权过。

    正确的逻辑处理是:

    (1)获取用户授权的信息

    (2)判断scope.writePhotosAlbum的值,若为true则已经授权,直接调用保存到相册的方法;若为undefined,则说明是第一次授权,需要调用wx.authorize弹出授权框,授权框只在第一次询问时弹出,如果用户已经拒绝了,则不会弹出。因此我们需要对undefined情况进行判断。若为false,则已经拒绝了授权,这时候我们需要调用wx.openSetting引导用户打开设置,保存到相册,wx.openSetting设置界面只会出现小程序已经向用户请求过的权限,正因为wx.authorize和wx.openSetting的使用场景限制,我们才需要考虑这两种case一起使用才行,缺一不可。

            wx.getSetting({
                success(res) {
                    if (res.authSetting['scope.writePhotosAlbum']) {
                        _this.saveImg();
                    } else if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
                        wx.authorize({
                            scope: 'scope.writePhotosAlbum',
                            success() {
                                _this.saveImg();
                            },
                            fail(){
                                wx.showToast({
                                    title: '您没有授权,无法保存到相册',
                                    icon: 'none'
                                })
                            }
                        })
                    }else {
                        wx.openSetting({
                            success(res) {
                                if (res.authSetting['scope.writePhotosAlbum']) {
                                    _this.saveImg();
                                }else{
                                    wx.showToast({
                                        title:'您没有授权,无法保存到相册',
                                        icon:'none'
                                    })
                                    _this.setData({ isSaving: false });                                
                                }
                            }
                        })
                    }
                }
            })
  • 相关阅读:
    POJ 1001 Exponentiation
    POJ 2105 IP Address
    条款1:视C++为一个语言联邦
    条款2:尽量使用const ,enum,inline替换define
    走台阶问题
    Oracle之分页问题
    Oracle之子查询:Top-N问题
    Facade——外观模式
    PROXY——代理模式
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/BlueCc/p/10811410.html
Copyright © 2011-2022 走看看