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


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 相关文章推荐
Prototype使用指南之dom.js
Jan 10 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 Javascript
七个很有意思的PHP函数
May 12 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
jQuery表格插件datatables用法总结
Sep 05 Javascript
简单谈谈JavaScript的同步与异步
Dec 31 Javascript
Winform客户端向web地址传参接收参数的方法
May 17 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
详解puppeteer使用代理
Dec 27 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&amp;&amp;mysql)四
2006/10/09 PHP
ZF等常用php框架中存在的问题
2008/01/10 PHP
php数组总结篇(一)
2008/09/30 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
python常见排序算法基础教程
2017/04/13 Python
查看django版本的方法分享
2018/05/14 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python微信好友数据分析详解
2018/11/19 Python
对python中的装包与解包实例详解
2019/08/24 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
水果连锁超市创业计划书
2014/01/24 职场文书
行政助理工作职责范本
2014/03/04 职场文书
中班开学寄语
2014/04/04 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
2015年暑假生活总结
2015/07/13 职场文书
市级三好生竞选稿
2015/11/21 职场文书
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技