第一步
先通过wx.getSetting()获取用户的当前设置,返回值中只会出现小程序已经向用户请求过的权限。

第二步
判断用户是否已经授权某项设置,
如果某项设置(如:scope.userLocation)已经授权,直接调用接口;
如果某项设置(如:scope.userLocation)未授权,则发起授权wx.authorize()。

第三步
如果是首次发起授权,即用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后会进入success回调;如果用户拒绝会进入 fail 回调。
特别注意的是,当用户点击同意或者拒绝,小程序都会记录用户的这个授权设置。当再次发起这项授权时,小程序不会再弹窗询问用户,而是直接进入success回调(之前同意授权)或者fail 回调(之前拒绝授权)。

第四步
如果用户拒绝授权,除非删除小程序再重新进入,否则位置权限就一直无法获得,地图一直无法定位。
因此我们需要主动引导用户给予位置权限。

附上代码:

//检查地理位置是否授权,未授权则发起授权请求check_authSetting_userLocation(){const _this = this;wx.getSetting({success (res) {console.log(res.authSetting)if(!res.authSetting['scope.userLocation']){wx.authorize({scope: 'scope.userLocation',success (res) {console.log('获取地理位置授权成功')_this.getLocation();},fail(err){console.log('获取地理位置授权失败')console.log(err)wx.showModal({title: '小程序需要获取您的位置信息',content: '请允许获取您的位置信息,否则小程序部分功能将无法使用',success (res) {if (res.confirm) {wx.openSetting({success (res) {console.log('成功',res)if(res.authSetting['scope.userLocation']){_this.getLocation();}},fail(err){console.log(err)}})} else if (res.cancel) {console.log('用户点击取消')}}})}})}else{console.log('获取地理位置已授权')_this.getLocation();}},fail:function(err){console.log(err)}})},

微信小程序发起用户授权相关推荐

  1. 微信小程序之用户授权

    用户授权 今天我们来讲解微信小程序之用户授权,首先这个我们得分2种情况:1.弹出授权框用户点击允许 2.弹出授权框用户点击拒绝 第一种情况: 很好处理,这里就不多做介绍,按正常的走就可以了 第二种情况 ...

  2. 微信中html5获取手机号,微信小程序通过用户授权获取手机号

    这篇文章主要介绍了微信小程序如何通过用户授权获取手机号(getPhoneNumber),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 小程序有一个获 ...

  3. 微信小程序开发 - 用户授权登陆

    本篇将帮助读者实现基于 微信开发者工具 & C#环境 下的用户在小程序上的授权登陆. 准备: 微信开发者工具下载地址:https://developers.weixin.qq.com/mini ...

  4. 微信小程序云开发用户身份登录_微信小程序开发用户授权登录(下)

    如果开发者拥有多个移动应用.网站应用.和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用.网站应用和公众帐号(包括小程序),用户的 Un ...

  5. 【微信小程序】用户授权及getUserProfile接口使用

    小程序登录.用户信息相关接口调整说明 为优化用户的使用体验,平台将进行以下调整: 1,2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取un ...

  6. 微信小程序:用户授权登录

    点击"微信一键登录"按钮,触发login_weixi事件 先查看是否勾选了底部按钮,勾选了就获取用户信息,每次请求成功都会弹出授权窗口,把用户信息缓存到storage里面,方便下次 ...

  7. 【微信小程序】用户授权以及判断登录是否过期的方法

    实现效果 场景 在打开小程序时判断用户是否过期(如果未过期则重新登录),然后获取用户信息,进而在前台显示: 主要实现两个功能: 判断登录是否过期,如果过期则就重新登录,如果没过期就提示未过期: 获取用 ...

  8. 微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度

    我们在开发小程序时,有些操作必须让用户授权.比如我们获取用户位置,需要用户授权位置信息.授权操作我们需要给用户弹窗提示,在用户禁用某些权限时,又要引导用户去设置页开启相应权限.我们这里就以获取经纬度为 ...

  9. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

最新文章

  1. LeetCode MySQL 614. 二级关注者
  2. 从Bayes角度理解Deep learning
  3. 04-linux下离线安装Rserve
  4. 几种简单的负载均衡算法及其 Java 代码实现
  5. 针对大的sql文件删除行操作
  6. weblogic启动失败:Could not obtain the localhost address 解决办法
  7. 如何快速实现自定义sql分页?若不会,我便手把手教你【详细】
  8. VMware14安装步骤
  9. (附源码)ssm牙科诊所预约网站 毕业设计 260952
  10. 【电商】电商后台设计—订单中心
  11. 阿帕奇服务器配置站点,Apache的基本服务器配置
  12. 数据分析——ETF基金申购赎回清单
  13. 中通快递信息怎么批量导出到表格呢?
  14. 人际关系差不能当跳槽理由,原因在这里
  15. 微信小程序前后端授权登陆
  16. 数仓基于表级别的数据血缘分析
  17. 营销QQ添加好友限制完美解决方案
  18. 求求你!不要在网上乱拷贝代码了
  19. DateEdit仅显示和选择年份
  20. powertop代码走读记录

热门文章

  1. Mysql常用命令详细大全
  2. SQL语句优化(落实到代码,不绕弯子)
  3. 第04课:选择技术方向都要考虑哪些因素(下)
  4. Word文件删除限制密码的方法
  5. Java注解@JsonFormat
  6. 雷霆战机装备最强推荐搭配
  7. 外啮合齿轮泵的工作原理
  8. Unity 遍历子物体与孙物体
  9. 面试官:你能说说 Nacos 的实现原理吗?
  10. Sublime Text 3 3126 注册码