微信小程序获取地理位置及经纬度授权代码实例


Posted in Javascript onSeptember 18, 2019

这篇文章主要介绍了微信小程序获取地理位置及经纬度授权代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

微信小程序获取地理位置授权,首先需要在app.json中添加配置:

"permission": {
  "scope.userLocation": {
   "desc": "请确认授权"
  }
 }

获取经纬度:如果手机未开启位置信息,那么授权成功后在wx.getLocation()方法中也会一直失败,所以需要在fail方法中提示用户开启手机位置信息

getUserLocation: function () {
    let vm = this
    wx.getSetting({
      success: (res) => {
        // res.authSetting['scope.userLocation'] == undefined  表示 初始化进入该页面
        // res.authSetting['scope.userLocation'] == false  表示 非初始化进入该页面,且未授权
        // res.authSetting['scope.userLocation'] == true  表示 地理位置授权
        // 拒绝授权后再次进入重新授权
        if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
          // console.log('authSetting:status:拒绝授权后再次进入重新授权', res.authSetting['scope.userLocation'])
          wx.showModal({
            title: '',
            content: '【泰福利Lite】需要获取你的地理位置,请确认授权',
            success: function (res) {
              if (res.cancel) {
                wx.showToast({
                  title: '拒绝授权',
                  icon: 'none'
                })
                setTimeout(() => {
                  wx.navigateBack()
                }, 1500)
              } else if (res.confirm) {
                wx.openSetting({
                  success: function (dataAu) {
                    // console.log('dataAu:success', dataAu)
                    if (dataAu.authSetting["scope.userLocation"] == true) {
                      //再次授权,调用wx.getLocation的API
                      vm.getLocation(dataAu)
                    } else {
                      wx.showToast({
                        title: '授权失败',
                        icon: 'none'
                      })
                      setTimeout(() => {
                        wx.navigateBack()
                      }, 1500)
                    }
                  }
                })
              }
            }
          })
        }
        // 初始化进入,未授权
        else if (res.authSetting['scope.userLocation'] == undefined) {
          // console.log('authSetting:status:初始化进入,未授权', res.authSetting['scope.userLocation'])
          //调用wx.getLocation的API
          vm.getLocation(res)
        }
        // 已授权
        else if (res.authSetting['scope.userLocation']) {
          // console.log('authSetting:status:已授权', res.authSetting['scope.userLocation'])
          //调用wx.getLocation的API
          vm.getLocation(res)
        }
      }
    })
  },
  // 微信获得经纬度
  getLocation: function (userLocation) {
    let vm = this
    wx.getLocation({
      type: "wgs84",
      success: function (res) {
        // console.log('getLocation:success', res)
        var latitude = res.latitude
        var longitude = res.longitude
        vm.getDaiShu(latitude, longitude)
      },
      fail: function (res) {
        // console.log('getLocation:fail', res)
        if (res.errMsg === 'getLocation:fail:auth denied') {
          wx.showToast({
            title: '拒绝授权',
            icon: 'none'
          })
          setTimeout(() => {
            wx.navigateBack()
          }, 1500)
          return
        }
        if (!userLocation || !userLocation.authSetting['scope.userLocation']) {
          vm.getUserLocation()
        } else if (userLocation.authSetting['scope.userLocation']) {
          wx.showModal({
            title: '',
            content: '请在系统设置中打开定位服务',
            showCancel: false,
            success: result => {
              if (result.confirm) {
                wx.navigateBack()
              }
            }
          })
        } else {
          wx.showToast({
            title: '授权失败',
            icon: 'none'
          })
          setTimeout(() => {
            wx.navigateBack()
          }, 1500)
        }
      }
    })
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
WordPress JQuery处理沙发头像
Jun 22 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
jQuery 定时局部刷新(setInterval)
Nov 19 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
.NET微信公众号开发之创建自定义菜单
Jul 16 Javascript
jquery实现叠层3D文字特效代码分享
Aug 21 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
Javascript之Date对象详解
Jun 07 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
Oct 16 Javascript
layui复选框限制选择个数的方法
Sep 18 #Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 #Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 #Javascript
Vue Components 数字键盘的实现
Sep 18 #Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 #Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 #Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 #Javascript
You might like
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python单例模式的多种实现方法
2019/07/26 Python
python实现的发邮件功能示例
2019/09/11 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python中的整除和取模实例
2020/06/03 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
联想C++笔试题
2012/06/13 面试题
擅自离岗检讨书
2014/02/11 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
教师工作态度自我评价
2015/03/05 职场文书
保研推荐信范文
2015/03/25 职场文书
孔子观后感
2015/06/08 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
Python 实现定积分与二重定积分的操作
2021/05/26 Python
详解Python中的进程和线程
2021/06/23 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python