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


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解密入门 最终变量劫持
Jun 25 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
原创jQuery弹出层插件分享
Apr 02 Javascript
JS获取和修改元素样式的实例代码
Aug 06 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
JS中with的替代方法与String中的正则方法详解
Dec 23 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
May 17 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
Sep 29 Javascript
在vue里使用codemirror遇到的问题
Nov 01 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
Dec 10 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
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Python装饰器的函数式编程详解
2015/02/27 Python
Python生成随机数组的方法小结
2017/04/15 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
python多任务之协程的使用详解
2019/08/26 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
精选干货:Java精选笔试题附答案
2014/01/18 面试题
养殖项目策划书范文
2014/01/13 职场文书
揭牌仪式主持词
2014/03/19 职场文书
布达拉宫的导游词
2015/02/02 职场文书