uniapp开发获取用户位置信息功能解析

  • 问题描述
  • uniapp相关接口
    • 1、uni.authorize 提前向用户发起授权请求。
      • 接口描述及demo演示
    • 2、uni.getLocation 获取当前的地理位置、速度。
    • 3、uni.openSetting 调起客户端小程序设置界面,返回用户设置的操作结果
  • 解决方案
    • 1、uniapp微信小程序端
    • 2、uniapp支付宝小程序端

问题描述

uniapp官网上没有找到关于获取用户手机定位是否打开的接口,而在开发小程序的时候,遇到了用户虽然授权了位置服务,但是还是获取不到用户位置,发现实际的问题是,用户的手机定位功能没开。

uniapp相关接口

1、uni.authorize 提前向用户发起授权请求。

uni.authorize接口地址

接口描述及demo演示

这个接口需要去理解接口的描述。不然可能会一直绕进去。

在页面onShow方法中添加下面的代码块。在页面show的时候。

注意观察下面的333333和444444的日志打印,可以看到,这个日志是在用户操作后,才打印出来的。

2、uni.getLocation 获取当前的地理位置、速度。

uni.getLocation接口地址

3、uni.openSetting 调起客户端小程序设置界面,返回用户设置的操作结果

解决方案

1、uniapp微信小程序端

uni.authorize({scope: 'scope.userLocation',success() {console.log("用户授权了位置")uni.getLocation({type: 'gcj02',success: function(res) {let location = {longitude: res.longitude,latitude: res.latitude}let locationJson = JSON.stringify(location)// 比较用户当前位置信息,如果位置信息和之前的位置信息不一致,则更新//    赋值位置信息_this.location = locationif (oldLocationJson != locationJson) {uni.setStorageSync("location", locationJson)_this.mescroll.resetUpScroll()}},fail: (err) => {uni.showModal({title: '',content: '请在系统设置中打开定位服务',confirmText: '确定',success: function(res) {}})}})},fail: (err) => {console.log("用户拒绝了位置")this.openSettingPage()}})

2、uniapp支付宝小程序端

由于支付宝小程序uni.authorize接口不支持,所以需要区分写。也可以都使用下面的支付宝小程序端的代码。

// #ifdef MP-ALIPAYuni.getLocation({type: 'gcj02',success: function(res) {let location = {longitude: res.longitude,latitude: res.latitude}let locationJson = JSON.stringify(location)//  比较用户当前位置信息,如果位置信息和之前的位置信息不一致,则更新//    赋值位置信息_this.location = locationif (oldLocationJson != locationJson) {uni.setStorageSync("location", locationJson)_this.mescroll.resetUpScroll()}},fail: (err) => {uni.getSetting({success(res) {if(res.scope && res.scope.userLocation) {uni.showModal({title: '',content: '请在系统设置中打开定位服务',confirmText: '确定',success: function(res) {}})console.log("授权了地理位置,没有获取到用户位置信息,设备定位未打开")} else {_this.openSettingPage()console.log("没有授权地址位置,没有获取到用户位置信息。需要用户打开授权")}},fail(err) {console.log(err)}})}})// #endif

uniapp开发获取用户位置信息功能解析相关推荐

  1. 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...

  2. 微信小程序(uniapp)获取用户位置信息及选择位置

    1. 开发前准备 注册微信小程序账号并配置相关信息: 注册腾讯地图开放平台并完成应用创建等: 下载qqmap-wx-jssdk.min.js放到项目中: 2. 获取用户当前位置wx.getLocati ...

  3. Uniapp实现小程序获取用户微信信息功能

    Uniapp实现小程序获取用户微信信息功能 实现后发现其实这个功能实现起来非常简单,但是,在实现这个功能的过程中真的好多坑啊,可能是我菜吧. 1.获取uniapp的appid和微信小程序的appid, ...

  4. 微信小程序获取用户位置信息并显示到地图上

    1.配置地理位置用途说明 在app.json中的大括号内输入 "permission": {"scope.userLocation": {"desc& ...

  5. 微信小程序—获取用户位置信息

    一.使用 wx.getLocation 获取经纬度信息 1.1 在 app.json 中加入如下配置 "permission": {"scope.userLocation ...

  6. uniApp获取用户位置信息两种方法

    1.使用uni.chooseLocation获取用户信息 uni.chooseLocation({success: (res) => {console.log('位置名称:' + res.nam ...

  7. vue定位 获取用户位置信息

    关于定位功能尝试了很多种方法,h5定位,百度地图定位,高德地图定位,因为ip定位只能定位到城市,所以我选用的是浏览器定位.总结如下: H5定位:定位相对较准,但是部分浏览器不兼容,我主要是在手机上测试 ...

  8. 手机端定位获取用户位置信息

    很多时候,我们需要获取手机端用户的位置信息,当然这需要用户的同意授权才能进行获取,下面介绍下我在项目中使用的定位 由于本项目web端使用的是高德地图,因此手机端定位也使用高德的定位接口 <htm ...

  9. 微信小程序获取用户位置信息

    1.在 app.json 里面增加 permission 属性配置小程序配置 | 微信开放文档 "permission": {"scope.userLocation&qu ...

最新文章

  1. 《YES!B/S!》博客文章导读索引(20080612更新)
  2. 深入mysql慢查询设置的详解
  3. (转)WIN7更改用户名访问共享文件夹
  4. 关于子网掩码的是是非非
  5. 第二次作业——小学生四则运算
  6. 微信聊天可以带话题了 网友:朋友分享安利更方便了
  7. 自带python库的环境软件_pyenv虚拟环境管理python多版本和软件库
  8. 华为方舟编译器 下载 和 LiteOS Studio Setup 2019-04-16.exe SDK下载
  9. 基于单片机的贪吃蛇游戏设计仿真
  10. Linux之进程管理——查看进程
  11. 电磁仿真软件CST2020 下载链接及安装破·解教程笔记
  12. 计算机主板手工,教你DIY一台笔记本(伪),简单粗暴成本低
  13. 破解IntelliJ IDEA 2017.1到2099年
  14. 少儿编程---小猫追气球
  15. 菜鸟好文推荐(九)——程序员”青春饭”问题之我见
  16. HTML网页设计: 一 HTML的基本结构
  17. SVN主干到分支的详细操作!
  18. python获取每月的最后一天
  19. coursera python web_一步步爬取Coursera课程资源
  20. 第 3-5 课:Flutter 调试及 Android 和 iOS 打包

热门文章

  1. 如何让php文件常驻内存,【后端开辟】Asf PHP开辟之设置信息常驻体系内存
  2. 屋面房顶白色外壁降温用凉凉胶隔热面漆 隔热性能十分优异
  3. LoadRunner11录制脚本时不能打开IE浏览器
  4. JAVA 一个月多少天
  5. 【C++】Heather银行对顾客排队等待的时间进行估测问题 《C++ Primer Plus》12.7 队列模拟 学习笔记
  6. 在英语句子中,哪些词可以做主语
  7. Linux的ioctl和fcntl
  8. 纯css实现优惠券效果
  9. QWidget旋转方法
  10. 云数据库 MySQL使用规范 数据库开发人员一定要看!