微信小程序位置授权处理方法


Posted in Javascript onJune 13, 2019

这两天在做小程序调取地图的时候遇到一个问题,如果用户第一次拒绝了位置权限请求。那么就不会再次唤起授权弹出。需要我们引导用户去开启。

具体做法如下。 在 aap.json中加入授权配置

"permission": {
 "scope.userLocation": {
  "desc": "你的位置信息将用于小程序位置接口的效果展示"
 }
 }

在 page页面中使用,需要有几个注意的地方,初次使用的时候,去申请权限。这里我是放在onShow 方法里面。

onShow: function () {
 //初始获取定位权限
 wx.authorize({
  scope: 'scope.userLocation',
  success: (res) => {

  },
 })
 },

然后在调用地图地位。或者获取用户权限的函数去判断是否有定位权限,如果没有那么引导用户开启权限。 如下:我有一个Input去触发选择地图事件。

<input bindfocus="openMap" value='{{address}}' placeholder="点击选择详细地址"></input>

事件处理

openMap:function(e){
 var that = this
 wx.getSetting({
  success(res){
  //这里判断是否有地位权限
   if (!res.authSetting['scope.userLocation']) {
   wx.showModal({
    title: '提示',
    content: '请求获取位置权限',
    success:function(res){
    if(res.confirm==false){
     return false;
    }
    wx.openSetting({
     success(res) {
     //如果再次拒绝则返回页面并提示
     if (!res.authSetting['scope.userLocation']) {
      wx.showToast({
      title: '此功能需获取位置信息,请重新设置',
      duration: 3000,
      icon: 'none'
      })
     } else {
      //允许授权,调用地图
      that.chooseMap()
     }
     }
    })
    }
   }) 
   } else {
   //如果有定位权限,调用地图
   that.chooseMap()
   }

  }

 })
 },

 chooseMap(){
 var that = this
 wx.chooseLocation({
  success: function (res) {
  that.setData({
   address: res.address,
   latitude: res.latitude,
   longitude: res.longitude
  })
  },
  fail: function (res) {
  console.log(res)
  }
 })
 },

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
Mar 09 Javascript
mac上node.js环境的安装测试
Jul 03 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
Jul 24 Javascript
ES6中let 和 const 的新特性
Sep 03 Javascript
vue 属性拦截实现双向绑定的实例代码
Oct 24 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
json数据格式常见操作示例
Jun 13 #Javascript
微信小程序实现渐入渐出动画效果
Jun 13 #Javascript
微信小程序前端自定义分享的实现方法
Jun 13 #Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 #Javascript
javascript实现的字符串转换成数组操作示例
Jun 13 #Javascript
javascript实现的时间格式加8小时功能示例
Jun 13 #Javascript
深入了解JavaScript代码覆盖
Jun 13 #Javascript
You might like
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
用jquery存取照片的具体实现方法
2013/06/30 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
微信小程序表单验证功能完整实例
2017/12/01 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python的常见命令注入威胁
2013/02/18 Python
python实现ipsec开权限实例
2014/11/11 Python
Python实现进程同步和通信的方法
2018/01/02 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
中学运动会广播稿
2014/01/19 职场文书
营销总经理岗位职责
2014/02/02 职场文书
干部现实表现材料
2014/02/13 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
小学生环保标语
2014/06/13 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
通知的写法
2015/04/23 职场文书
叶问观后感
2015/06/15 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
Golang Web 框架Iris安装部署
2022/08/14 Python