小程序用户拒绝授权解决方法

众所周知,小程序进入首先都要进行微信授权的,那万一用户不小心点了拒绝按钮怎么办呢?不要慌,官方早已预料到此情况,并提供了api供开发者使用,下面就一起来研究下api吧

一、API接口

wx.openSetting(OBJECT)调起客户端小程序设置界面,返回用户设置的操作结果。注:设置界面只会出现小程序已经向用户请求过的权限。wx.getSetting(OBJECT)获取用户的当前设置。注:返回值中只会出现小程序已经向用户请求过的权限。

二、API调用顺序

首先要知道咱们解决的问题是什么,其次才是怎么解决问题。

需要解决的问题:用户拒绝授权,在需要其授权的信息的页面打开授权,让用户再次进行授权(ps:表达能力有限)

分析问题:1.拒绝授权;2.再次授权

1:既然已拒绝授权,那么肯定已经调用了wx.getUserInfo()方法,那么先看下这个api吧

        wx.getUserInfo({success: function (res) {//用户同意授权时返回的数据var userInfo = res.userInfowx.setStroageSync('userInfo', userInfo)//获app.userInfo = userInfovar nickName = userInfo.nickNamevar avatarUrl = userInfo.avatarUrlvar gender = userInfo.gender //性别 0:未知、1:男、2:女var province = userInfo.provincevar city = userInfo.cityvar country = userInfo.country},fail: function (ret) {//用户拒绝授权时的操作// 
}})

2.再次授权

        // 在需要用户授权时调用wx.getSetting()
        wx.getSetting({success: function (res) {if (res.authSetting["scope.userInfo"]) {//用户已授权
                    wx.getUserInfo({success: function (data) {var scopeData = data.userInfo;wx.setStorageSync('userInfo', scopeData);}})} else {//用户未授权// 可以添加个提示信息,在这里就我就不写了哈wx.openSetting({//打开小程序设置页面,用户自己选择授权
                        success: function (res) {res.authSetting = {"scope.userInfo": true}}})}}})

3.注

 最后一点要注意,在小程序的设置页面,用户点击按钮是没有办法进行其操作的,要在其返回页面的onShow方法里进行wx.getSetting的success()操作


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭示垃圾收集暂停的时间长度

有几种方法可以改善您的产品。 一种方法是仔细跟踪用户的体验并在此基础上进行改进。 我们确实自己应用了此技术,并再次花了一些时间查看不同的数据 除了我们追求的许多其他方面之外,我们还提出了一个问题“延迟GC触发应用程序的最坏情况是什么”。 为了…

异步导致UI句柄增加的解决办法

在很多操作中,都会使用到异步线程,具体怎样使用在这不说了,网上有很好的说明;本人通过Delegate.BeginInvoke实现异步调用,完成后对UI控件进行设值等,还有System.Timers.Timer都一样,使用的是线程…

[转]android ListView详解

本文转自:http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 由于google doc 很多人都打不开,故更新了源码下载地址 【源码下载】----2011-01-18 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容&#xff…

JS对象操作

一、String常用操作 1.截取 substr(start,length) //返回从指定位置开始的指定长度的字符串。 substring(start,end) //返回两个指定的位置之间的字符串。 slice(start,end) //包括字符串 stringObject 从 start 开始(包括 start)到 end 结束&#xff0…

JBoss BPM Suite 6.0.3版本的5个实用技巧

上周,红帽发布了标记为6.0.3的JBoss BPM Suite的下一版本,已订阅的用户可以在其客户门户中使用。 如果您对该版本的新增功能感到好奇,请在客户门户网站上在线查看版本说明和其余文档 。 我们正在寻找一些简单的方法来开始使用此新版本&…

package-lock.json

package.json确定依赖的范围,package-lock.json将这个范围精确到具体版本。主要是为了解决在各个环境中得到确定的node_modules,如果只依赖package.json因为该文件声明的是直接依赖的范围,它无法将直接依赖固定在某个特定版本,也无…

Linux启动管理

启动管理系统运行级别 运行级别:含义0 :关机1 :但用户模式,可以想象为windows的安全模式,主要用于系统修复2 :不完全的命令行模式,不含NFS服务3 :完全的命令行模式,就是标…

VB网站收集

1.vb源码 http://hi.baidu.com/aboutvb/home转载于:https://www.cnblogs.com/sode/archive/2011/11/05/2236883.html

Django学习---原生ajax

Ajax 原生ajax Ajax主要就是使用 【XmlHttpRequest】对象来完成请求的操作,该对象在主流浏览器中均存在(除早起的IE),Ajax首次出现IE5.5中存在(ActiveX控件)。 XmlHttpRequest对象的主要方法: a. void open(String …

The Little Schemer-周而复始之Y组合子由来

什么是递归? (define length(lambda (l)(cond((null? l) 0)(else (add1 (length (cdr l)))))))以上是length函数的实现用递归的形式计算出数据集合l的长度。 如果没有define这种赋值操作我们怎么定义length函数?换句话说我们怎么使用匿名函数完成递归…

霸主–统治和管理API的地方

今天我们生活在一个越来越分散的世界中。 如今的计算机系统不再是在随机桌子下面的某些硬件上运行单个部门项目,而是大规模,集中甚至分散地运行。 监视和管理的需求从未改变,但是随着时间的推移变得越来越复杂。 如果将所有这些跨功能功能都放…

Django操作与内容

一、路由系统 1.如何实现伪静态 在cnblogs中:https://www.cnblogs.com/wangwei5979/p/11160708.html 而我们自己写的: http://127.0.0.1:8000/up_studnet/?id12同样是网页 为何cnblogs这样设计 原因: 1就是因为比较美观 2由于使用搜索引擎来…

监控 SQL Server 的运行状况

Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。 常规服务器动态管理对象包括: dm_db_*:数据库和…

RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—单词注释版)

part of Hypertext Transfer Protocol -- HTTP/1.1RFC 2616 Fielding, et al. 14 Header Field Definitions(规定) This section(部分,章节) defines(规定定义) the syntax(语法) and semantics(语意) of all standard(标准) HTTP/1.1 header fields. For entity-…

Java开发人员应该知道的5种错误跟踪工具

随着Java生态系统的不断发展,可满足不断增长的请求和用户对高性能需求的Web应用程序成为了新型的现代开发工具。 具有快速新部署的快速节奏环境需要跟踪错误并获得应用程序行为的洞察力,而传统方法无法维持这种水平。 在这篇文章中,我们决定收…

Emacs中的Color Theme以及字体设置

先上一张效果图: Color Theme用的是gnome2, 字体用的是Visual Studio自带的Consolas。我使用的环境是WindowsCygwinEmacs23.2。 1,安装Color Theme插件 首先,从http://download.savannah.gnu.org/releases/color-theme/下载color theme 6.6.0版本。 接着…

JavaScript与 HTML表单的交互过程,想要学习动态网页但是无从下手的新手看看。...

最近开始了 java web的学习在学习中学到了很多有用的东西 比如说 html 表单如何 和 javascript进行交互的 读完本篇文章后相信初学者会有一个 清晰的理解 。。。 对应下面的代码看我写的问题 。 其实表单的交互操作很简单 就是在 提交表单数据的时候调用一个 javascrip…

问题记录之前端路由系统

概要: 公司的一个项目中使用了根据路由配置生成对应的Route,而配置会存在一份在store中,当store中的RouteConfig变化时,会根据最新的配置来生成最新的试图。 因为路由配置系统实现上的一些缺陷本次需要对其就行性能上的一些优化…

vue兼容ie10问题并且node——module中出现es6语法如何解决

一、首先进行安装babel-polyfill,如果你用yarn安装babel-polyfill的话需要yarn add babel-polyfill进行安装 二、在babel.config.js中加入 三、在ie浏览器中找到报错的文件,然后将文件加入其中 转载于:https://www.cnblogs.com/changhuanran/p/11193149.…

2个在Java中将Byte []数组转换为String的示例

将字节数组转换为String似乎很容易,但是很难做到正确。 每当字节转换为String或char时,许多程序员都会犯忽略字符编码的错误,反之亦然。 作为程序员,我们都知道计算机只能理解二进制数据,即0和1。我们看到和使用的所有…