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


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 相关文章推荐
Javascript document.referrer判断访客来源网址
May 15 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
Javascript实现计算个人所得税
May 10 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
Jan 27 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
vuejs使用axios异步访问时用get和post的实例讲解
Aug 09 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
Feb 22 Javascript
微信头像地址失效踩坑记附带解决方案
Sep 23 Javascript
js实现微信聊天效果
Aug 09 Javascript
vue-cli 关闭热更新操作
Sep 18 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
thinkphp浏览历史功能实现方法
2014/10/29 PHP
php短址转换实现方法
2015/02/25 PHP
php中动态调用函数的方法
2015/03/16 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
pandas DataFrame运算的实现
2020/06/14 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
小学生期末自我鉴定
2014/01/19 职场文书
小学生安全演讲稿
2014/04/25 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
员工加薪申请报告
2015/05/15 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
Python实现Hash算法
2022/03/18 Python
python中redis包操作数据库的教程
2022/04/19 Python