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


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 相关文章推荐
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
jQuery中width()方法用法实例
Dec 24 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
详解如何较好的使用js
Dec 16 Javascript
js返回顶部实例分享
Dec 21 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
package.json配置文件构成详解
Aug 27 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 24 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
zend framework文件上传功能实例代码
2013/12/25 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
Python程序员开发中常犯的10个错误
2014/07/07 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
煤矿班组长的职责
2013/12/25 职场文书
大学活动总结模板
2014/07/10 职场文书
休假证明书
2015/06/24 职场文书
高三数学教学反思
2016/02/18 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
Python List remove()实例用法详解
2021/08/02 Python