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


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判断录入的日期是否合法
Jan 08 Javascript
javascript 命名规则 变量命名规则
Feb 25 Javascript
数组方法解决JS字符串连接性能问题有争议
Jan 12 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
Jan 13 Javascript
jQuery点击后一组图片左右滑动的实现代码
Aug 16 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
Jan 19 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
解决vue 引入子组件报错的问题
Sep 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/11/17 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
jquery处理json对象
2014/11/03 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python实现自动上京东抢手机
2018/02/06 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Python requests模块cookie实例解析
2020/04/14 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
Django url 路由匹配过程详解
2021/01/22 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
管理科学大学生求职信
2013/11/13 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
干部考核工作总结
2015/08/12 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电