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


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 相关文章推荐
新手入门常用代码集锦
Jan 11 Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 Javascript
js怎么覆盖原有方法实现重写
Sep 04 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
Vue 监听元素前后变化值实例
Jul 29 Javascript
vue2.0 解决抽取公用js的问题
Jul 31 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
咖啡与水的关系
2021/03/03 冲泡冲煮
php网页后退不再出现过期
2007/03/08 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
新手学python应该下哪个版本
2020/06/11 Python
浅析Python __name__ 是什么
2020/07/07 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
颂军魂爱军营演讲稿
2014/09/13 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
导游词之临安白水涧
2019/11/05 职场文书
详解python网络进程
2021/06/15 Python