微信小程序简单实现授权遭拒后弹窗拉取授权(以保存图片到相册授权为例)

一、问题描述

有过微信小程序开发经历的应该会知道,小程序的部分接口需要用户授权同意才能调用,初次使用时小程序会有弹窗询问用户,但是一旦用户拒绝授权,那么下次点击时将不会出现弹窗询问。没有弹窗询问,该如何重新获取用户授权呢?下面以访问本地相册授权为例,介绍两类重新获取用户授权的方法。

二、微信用户的解决方案

1. 方法一:删除微信小程序后重新搜索进入该小程序。
微信小程序授权的有效期(一旦用户明确同意或拒绝过授权,其授权关系会记录在后台,直到用户主动删除小程序。)因此,如果用户主动删除小程序后重新搜索进入,即可再次出现授权的询问弹窗。此时小程序的缓存信息包括所有授权状态都将会被重置。
2.方法二:前往授权设置页面开启授权。
点击小程序右上角的“…”按钮->设置,进入授权设置页面开启授权即可。
在这里插入图片描述在这里插入图片描述

三、弹窗提示引导用户开启授权

当监测到用户拒绝授权时,弹出一个提示对话框,当用户点击确定后将自动转跳至授权设置页面,从而实现引导用户开启授权。
在这里插入图片描述在这里插入图片描述

四、参考代码

在接口调用失败的fail回调函数中,编写wx.showModal提示框,当用户点击确定时用wx.openSetting()引导用户前往授权设置页面开启授权。

wx.saveImageToPhotosAlbum({
                    success: function (res) {
                      if (res.authSetting['scope.writePhotosAlbum']) {
                      // 已经授权访问本地相册
                      }
                    },
                    fail:function(e){
                      wx.showModal({
                        title: '提示',
                        content: '用户拒绝授权访问本地相册将导致头像无法保存!如需继续操作,请点击确定前往开启授权。',
                        success: function (res) {
                          if (res.confirm) {//点击确定后前往授权设置页面
                            wx.openSetting()
                          } 
                        }
                      })
                    }
                  })
发布了18 篇原创文章 · 获赞 40 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/seawaysyyy/article/details/102472375
今日推荐