uniapp开发获取用户位置信息功能解析
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开发获取用户位置信息功能解析相关推荐
- 微信服务号开发-获取用户位置信息
微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...
- 微信小程序(uniapp)获取用户位置信息及选择位置
1. 开发前准备 注册微信小程序账号并配置相关信息: 注册腾讯地图开放平台并完成应用创建等: 下载qqmap-wx-jssdk.min.js放到项目中: 2. 获取用户当前位置wx.getLocati ...
- Uniapp实现小程序获取用户微信信息功能
Uniapp实现小程序获取用户微信信息功能 实现后发现其实这个功能实现起来非常简单,但是,在实现这个功能的过程中真的好多坑啊,可能是我菜吧. 1.获取uniapp的appid和微信小程序的appid, ...
- 微信小程序获取用户位置信息并显示到地图上
1.配置地理位置用途说明 在app.json中的大括号内输入 "permission": {"scope.userLocation": {"desc& ...
- 微信小程序—获取用户位置信息
一.使用 wx.getLocation 获取经纬度信息 1.1 在 app.json 中加入如下配置 "permission": {"scope.userLocation ...
- uniApp获取用户位置信息两种方法
1.使用uni.chooseLocation获取用户信息 uni.chooseLocation({success: (res) => {console.log('位置名称:' + res.nam ...
- vue定位 获取用户位置信息
关于定位功能尝试了很多种方法,h5定位,百度地图定位,高德地图定位,因为ip定位只能定位到城市,所以我选用的是浏览器定位.总结如下: H5定位:定位相对较准,但是部分浏览器不兼容,我主要是在手机上测试 ...
- 手机端定位获取用户位置信息
很多时候,我们需要获取手机端用户的位置信息,当然这需要用户的同意授权才能进行获取,下面介绍下我在项目中使用的定位 由于本项目web端使用的是高德地图,因此手机端定位也使用高德的定位接口 <htm ...
- 微信小程序获取用户位置信息
1.在 app.json 里面增加 permission 属性配置小程序配置 | 微信开放文档 "permission": {"scope.userLocation&qu ...
最新文章
- 《YES!B/S!》博客文章导读索引(20080612更新)
- 深入mysql慢查询设置的详解
- (转)WIN7更改用户名访问共享文件夹
- 关于子网掩码的是是非非
- 第二次作业——小学生四则运算
- 微信聊天可以带话题了 网友:朋友分享安利更方便了
- 自带python库的环境软件_pyenv虚拟环境管理python多版本和软件库
- 华为方舟编译器 下载 和 LiteOS Studio Setup 2019-04-16.exe SDK下载
- 基于单片机的贪吃蛇游戏设计仿真
- Linux之进程管理——查看进程
- 电磁仿真软件CST2020 下载链接及安装破·解教程笔记
- 计算机主板手工,教你DIY一台笔记本(伪),简单粗暴成本低
- 破解IntelliJ IDEA 2017.1到2099年
- 少儿编程---小猫追气球
- 菜鸟好文推荐(九)——程序员”青春饭”问题之我见
- HTML网页设计: 一 HTML的基本结构
- SVN主干到分支的详细操作!
- python获取每月的最后一天
- coursera python web_一步步爬取Coursera课程资源
- 第 3-5 课:Flutter 调试及 Android 和 iOS 打包