zoukankan      html  css  js  c++  java
  • 保存图片再次弹出授权框

    
    
    问题:当用户第一次进入小程序,点击授权按钮后,点了拒绝,再次点击不会出现授权页面,只有再次进入小程序的时候 才会出发请求授权 
    案例:假如我们要实现一个保存图片的功能,第一次点击的时候弹起授权,用户点击的拒绝,当用户再次点击的时候,如何继续弹出授权?
    实现步骤:
    1、wx.getSetting 判断用户是否开启授权相册
    2、wx.saveImageToPhotosAlbum已经授权,直接保存图片
    3、wx.authorize,如果没有授权,弹出授权框,点击确定之后,保存图片,
      点击确定之后,会走success,保存图片
      点击拒绝之后,会走fail (以后就不会弹出授权框了)
    再点击拒绝之后
    ·fail中需要让他弹出授权框(由于wx.openSetting必须通过按钮触发,所以我们当用户拒绝的时候添加一个弹出框(wx.showModal),当用户点击确定的时候弹出授权框)


        wx.getSetting({
                            success(res) {
                                console.log(that.tempFilePath)
                                // 如果没有则获取授权
                                if (!res.authSetting['scope.writePhotosAlbum']) {
                                    wx.authorize({
                                        scope: 'scope.writePhotosAlbum',
                                        success(res) {
                                            // console.log
                                            wx.saveImageToPhotosAlbum({
                                                filePath: that.tempFilePath,
                                                success() {
                                                    wx.showToast({
                                                        title: '保存成功'
                                                    })
                                                },
                                                fail() {
                                                    wx.showToast({
                                                        title: '保存失败用户点击取消'
                                                    })
                                                }
                                            })
                                        },
                                        fail() {
                                            wx.showModal({
                                                title: '提示',
                                                content: '若点击不授权,将无法使用保存图片功能',
                                                cancelText: '不授权',
                                                cancelColor: '#999',
                                                confirmText: '授权',
                                                confirmColor: '#f94218',
                                                success(res) {
                                                    if (res.confirm) {
                                                        wx.openSetting({
                                                            success(res) {
                                                                console.log(res.authSetting)
                                                            }
                                                        })
                                                    } else if (res.cancel) {
                                                        console.log('用户点击取消')
                                                    }
                                                }
                                            })
                                        }
                                    })
                                } else {
                                // 有则直接保存
                                    wx.saveImageToPhotosAlbum({
                                        filePath: that.tempFilePath,
                                        success() {
                                            wx.showToast({
                                                title: '保存成功'
                                            })
                                        },
                                        fail() {
                                            wx.showToast({
                                                title: '保存失败'
                                            })
                                        }
                                    })
                                }
                            }
                        })
  • 相关阅读:
    Python 正则表达式匹配两个指定字符串中间的内容
    Switch Case 和 If Else
    MYSQL LETT/RIGHT/INNER/FUll JOIN 注意事项
    MYSQL 批处理 Packet for query is too large
    Junit单元测试不支持多线程
    postman中 form-data、x-www-form-urlencoded、raw、binary的区别
    一个项目中:只能存在一个 WebMvcConfigurationSupport (添加swagger坑)
    Nginx 转发特点URL到指定服务
    基于UDP协议的程序设计
    TcpClient类与TcpListener类
  • 原文地址:https://www.cnblogs.com/yueyuez/p/12958291.html
Copyright © 2011-2022 走看看