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


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 相关文章推荐
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
js实现拉伸拖动iframe的具体代码
Aug 03 Javascript
JS动态修改iframe内嵌网页地址的方法
Apr 01 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
Aug 26 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
基于elementUI实现图片预览组件的示例代码
Mar 31 Javascript
VUE递归树形实现多级列表
Jul 15 Vue.js
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/03/28 PHP
使用PHP编写的SVN类
2013/07/18 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
JavaScript面向对象编程入门教程
2014/04/16 Javascript
javascript计时器详解
2015/02/28 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
python使用arp欺骗伪造网关的方法
2015/04/24 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
法国在线药房:1001Pharmacies
2021/03/07 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
神路信息Java面试题目
2013/03/31 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
房地产广告词大全
2014/03/19 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
大学生求职自荐信
2015/03/24 职场文书
学校教学工作总结2015
2015/05/19 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
Python 中的 copy()和deepcopy()
2021/11/07 Python
Golang map映射的用法
2022/04/22 Golang
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python