黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

微信小程序取消授权问题:用户拒绝授权了,该怎么处理呢?

来源:黔优媒体网   时间:2024-09-19

在做小程序开发的时候,我们经常会需要获取用户的一些权限。比如获取用户信息用于直接登录,获取地理位置用于定位等。但要是用户拒绝授权了,该怎么处理呢?

在小程序里面,获取到用户权限是进行某些操作的必要前提。比如在进入小程序的时候,获取到用户信息,拿到 unionid 对应到自己平台的账号进行登录,免去用户自己输入账号密码,这就是一个不错的体验。

当我们调用 wx.getUserInfo 或者 wx.getLocation 这种需要用户授权的 API 时,小程序会弹框让用户选择授权:

当用户选择允许后,下次再进入小程序就不会再询问了,直接获得用户授权(除非将小程序删了再进入)。这里的问题在于,当用户点了拒绝之后,就拿不到相关授权了,并且在一段时间内,进入小程序都不会再出现这个弹框。

从用户体验及保护隐私的角度考虑,小程序最好是不用授权也可以使用(或者体验)。但有些类型的小程序确实是需要拿到用户信息才能使用的。这里提供一个简单的解决方案。

以获取用户信息直接登录为例。增加一个授权页面,作为进入小程序的第一个页面,在这里获取用户数据和登录。默认可以什么都不显示,也可以当做引导页来使用。

获取用户信息需要用到 wx.login 和 wx.getUserInfo 两个 API,关于这两个 API 的具体信息大家可以到官方文档去查看。

增加一个登陆方法,代码如下:

//登录
login: function () {
 var that = this
 if (typeof success == function ) {
 this.data.getUserInfoSuccess = success
 wx.login({
 success: function (res) {
 var code = res.code;
 wx.getUserInfo({
 success: function (res) {
 //平台登录
 fail: function (res) {
 that.setData({
 getUserInfoFail: true
}

当上门代码走到了 fail 里面,就可以认为在获取授权的时候,用户点了拒绝。当 getUserInfoFail 为 true 的时候,可以展示一个获取授权的按钮,比如像这样:

接下来介绍另一个 API : wx.openSetting,使用 wx.openSetting 可以跳转到小程序的授权设置界面,在安卓里面它长这样:

在点击授权按钮后跳转到这里,让用户授权了才给进入首页,否则就停留在授权页面。

但还有个小问题,这个 API 是基础库 1.1.0 才有的,所以需要做兼容处理:

所以,最终跳转授权的代码如下:

//跳转设置页面授权
openSetting: function () {
 var that = this
 if (wx.openSetting) {
 wx.openSetting({
 success: function (res) {
 //尝试再次登录
 that.login()
 } else {
 wx.showModal({
 title: #39;授权提示 #39;,
 content: #39;小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序- 重新搜索进入- 点击授权按钮 #39;
}

还好 1.1.0 已结算是比较早的版本了,现在都出到 1.3.0 了。

同样的处理方式也可以用在获取别的权限上

相关文章:

微信小程序授权机制详解

微信小程序实现同步请求授权的实例分析

以上就是微信小程序取消授权问题:用户拒绝授权了,该怎么处理呢?的详细内容,更多请关注php中文网其它相关文章!

微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:微信小程序取消授权问题:用户拒绝授权了,该怎么处理呢?;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)