关于微信小程序拒绝授权后,重新授权并获取用户信息

  最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;

  看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:

  当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑;

  找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下:

  wx.openSetting(OBJECT)

  设置:调起客户端小程序设置界面,返回用户设置的操作结果;基础库 1.1.0 开始支持,低版本需做“兼容处理

  

  

  通过该方法可继续进行授权操作,不多做解释,直接上代码:

  1 var loginStatus = true;
  2 getPromission: function() {
  3     if (!loginStatus) {
  4       wx.openSetting({
  5         success: function (data) {
  6           if(data) {
  7             if (data.authSetting["scope.userInfo"] == true) {
  8               loginStatus = true;
  9               wx.getUserInfo({
 10                 withCredentials: false,
 11                 success: function (data) {
 12                   console.info("2成功获取用户返回数据");
 13                   console.info(data.userInfo);
 14                 },
 15                 fail: function () {
 16                   console.info("2授权失败返回数据");
 17                 } 21               });
 22             }
 23           } 25         },
 26         fail: function () {
 27           console.info("设置失败返回数据");
 28         } 32       });
 33     }else {
 34       wx.login({
 35         success: function (res) {
 36           if (res.code) { 38             wx.getUserInfo({
 39               withCredentials: false,
 40               success: function (data) {
 41                 console.info("1成功获取用户返回数据");
 42                 console.info(data.userInfo);
 43               },
 44               fail: function () {
 45                 console.info("1授权失败返回数据");
 46                 loginStatus = false;
 47                 // 显示提示弹窗
 48                 wx.showModal({
 49                   title: ‘提示标题‘,
 50                   content: ‘提示内容‘,
 51                   success: function (res) {
 52                     if (res.confirm) {
 53                       console.log(‘用户点击确定‘)
 54                     } else if (res.cancel) {
 55                       wx.openSetting({
 56                         success: function (data) {
 57                           if (data) {
 58                             if (data.authSetting["scope.userInfo"] == true) {
 59                               loginStatus = true;
 60                               wx.getUserInfo({
 61                                 withCredentials: false,
 62                                 success: function (data) {
 63                                   console.info("3成功获取用户返回数据");
 64                                   console.info(data.userInfo);
 65                                 },
 66                                 fail: function () {
 67                                   console.info("3授权失败返回数据");
 68                                 } 72                               });
 73                             }
 74                           } 76                         },
 77                         fail: function () {
 78                           console.info("设置失败返回数据");
 79                         } 83                       });
 84                     }
 85                   }
 86                 });
 87               } 91             });
 92           }
 93         },
 94         fail: function () {
 95           console.info("登录失败返回数据");
 96         }100       });
101     }
102   }

  以上是我实现的内容,没做处理,希望对大家有帮助!!!喷子勿喷

时间: 2024-10-08 07:41:23

关于微信小程序拒绝授权后,重新授权并获取用户信息的相关文章

微信小程序把玩(三十八)获取设备信息 API

原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx.onAccelerometerChange, 罗盘数据wx.onCompassChange wxml <button type="primary" bindtap="getNetWorkType">获取网络类型</button> <butt

[微信开发] - weixin4j获取网页授权后的code进而获取用户信息

weixin4j封装好的SnsComponent组件中的方法可以执行该步骤 WeixinUserInfoController : package com.baigehuidi.demo.controller; import com.baigehuidi.demo.loader.WeixinInsLoader; import com.baigehuidi.demo.weixin4j.WeixinException; import com.baigehuidi.demo.weixin4j.model

微信快速开发框架V2.3--增加语音识别及网页获取用户信息(八),代码已更新至Github

不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加到支持API接口.目前还在开发第三方微信平台,旨在使用户能够无需自己开发就能简易搭建微信平台. 更新内容 1.增加支持语音识别 2.增加"网页授权获取用户基本信息" 语音识别其实是对Voice信息的一个扩展,您必须启用语音识别功能,启用后会在VoiceMessage中增加一个Recongnition字段,我们可以判断这个字段的内

微信小程序(二)登录授权实现

相对于上一节,这一节主要是动态获取数据,主要是对登陆信息的接收,以及页面获取授权按钮的相对相应(未授权时,显示,授权后不显示) 关键在于状态值的判断,以及对页面的不同响应(m-->v) wxml代码如下: <!--pages/index2/index2.wxml--> <view class="index2Container"> <image class="avatar" src="{{userInfo.avatarUr

微信小程序开发之简单的授权登录

<view class="container"> <view class='content'> <view>申请获取以下权限</view> <text>获得你的公开信息(昵称,头像等)</text> </view> <button class='bottom' wx:if="{{canIUse}}" open-type="getUserInfo" bindg

微信小程序上传后发布或者体验版测试无数据

在做微信小程序开发的过程中,发现小程序在本地调用接口的数据都显示,但是上传之后,发现手机体验没有数据.以下为解决办法: 1.先清除缓存试试. 2.打开微信小程序工具右上角的详情——项目设置,将“不校验合法域名.web-view(业务域名).TLS 版本以及 HTTPS 证书”勾选上,然后上传,重新刷新微信小程序官方页面,重新打开二维码进行体验. 此文章为原创,转载时请标明原文章出处,谢谢大家! 原文地址:https://www.cnblogs.com/lynna/p/9199315.html

微信小程序(一),授权页面搭建

wxml代码如下: <!--pages/index2/index2.wxml--> <view class="index2Container"> <image class="avatar" src="/static/images/y.jpg"></image> <text class="username">hello 微信小程序</text> <vi

微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)

很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现的是基础功能.但是,可以给学习者很便捷的体验和很好的启发. 不过,随着微信平台和云服务的发展,真担心,程序猿会失业! 目录 一.微信小程序申请 二.服务器设置(申请.部署.域名) 1.申请服务器 2.部署服务器 3.域名申请和配置 三.小程序发布 1.下载DEMO 2.下载开发工具并安装 3.配置参

微信小程序——picker通过value返回你想获取的值

关于微信小程序中的picker使用方法可以访问:picker-小程序 从它的官方文档中,可以看出它返回的value值是它range的下标: 在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的值.像我项目中,需要获取到的是它对应的teamId,那么我们如何通过它的这个下标值返回你想要的值呢? 项目需求如下图: 步骤如下:  1.编写wxml文件 这是主要讲picker的功能,所以我只截了 picker 部分的wxml 代码了. 2.编写js文件 a). 定义data b). 赋值 c).