前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >uni-app实战之路-获取用户地址和基本信息

uni-app实战之路-获取用户地址和基本信息

作者头像
何处锦绣不灰堆
发布于 2020-05-28 14:57:07
发布于 2020-05-28 14:57:07
3.8K00
代码可运行
举报
文章被收录于专栏:农历七月廿一农历七月廿一
运行总次数:0
代码可运行

写在前面

开发小程序避免不了的是获取用户的信息,地址等,今天就简单的记录一下我实现的过程,因为我多个地方要用到,所以我这里直接写到vuex里面,你们看情况,不需要用的可以直接写到你们认为合适的地方!

流程

拿到授权->获取经纬度->获取地图的授权->根据经纬度进行逆地址解析 下面我们按照流程进行一步一步的来

authorize

authorize文档 这里可以看到文档里面写的还是比较明白的,提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。我们主要是使用他的参数scope,这个参数有一个对应的列表,里面的这个参数scope.userLocation,看实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.authorize({
    scope: 'scope.userLocation',
    success() {
        uni.getLocation()
    }
})

可能这个比较废话,不想我的风格,说好的不按照文档来的,我们还是按照文档来吧,毕竟这个我不是很熟悉,一步一步来!

getLocation

getLocation文档 获取当前的地理位置、速度。 我们使用这个进行获取用户的经纬度,这里文档有一个比较奇怪的地方,这里有一个参数是geocode,上面的描述是这样的,说默认false,是否解析地址信息,我这里的理解是解析地址应该是直接返回给你具体的详细地址,但是他返回的是一个经纬度,我以为是我写的有问题,但是我测试看一些

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getLocal(){
				uni.authorize({
					scope: "scope.userLocation",
					success() {
						//成功以后获取位置信息
						uni.getLocation({
							type: 'wgs84', //这里是不同的地图api支持的格式不一样,腾讯的gcj02,因为这里返回的是一个具体的经纬度,所以我们需要逆地址解析进行匹配对应的位置
							geocode :true,
							success: function(res) {
								console.log('当前位置的经度:' + res.longitude);
								console.log('当前位置的纬度:' + res.latitude);
								console.info(res)
							}
						});
					},
					fail(err) {
						uni.showToast({
							icon : none,
							title : '位置获取失败,部分功能不能使用!',
							duration : 2000
						})
						console.info(err)
					}
				})
			},

返回的结果是经纬度,好吧,可能是我比较菜吧,这里你们可以当作没看到!我们接着说,既然拿到的了经纬度,现在就需要想办法进行地址解析了!下面是官方的用法!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uni.getLocation({
    type: 'wgs84',
    success: function (res) {
        console.log('当前位置的经度:' + res.longitude);
        console.log('当前位置的纬度:' + res.latitude);
    }
});
获取腾讯的授权配置

腾讯地图api 我们进去以后呢直接点击控制台,进行微信登录,然后申请一个key,类似于这样的!

然后配置一下具体信息:

然后我们找到他的api 入门使用 我们直接看他的入门使用,里面说需要我们引入一个核心类

我们照做

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 引入SDK核心类
var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
var qqmapsdk;
Page({
 
    onLoad: function () {
        // 实例化API核心类
        qqmapsdk = new QQMapWX({
            key: '申请的key'
        });
    },
    onShow: function () {
        // 调用接口
        qqmapsdk.search({
            keyword: '酒店',
            success: function (res) {
                console.log(res);
            },
            fail: function (res) {
                console.log(res);
            },
        complete: function (res) {
            console.log(res);
        }
    });
})

写的很明白,我们这里下载好以后直接进行引入,然后我们看一下他的逆地址解析的过程 逆地址解析 我们直接使用:这里注意一点,uniapp自带的type类型是wgs84,我们这里使用的是gcj02,不明白没关系,我也不明白,但是知道用就行了。

具体有什么区别呢!博主这里简单的搜索了一下,感兴趣的可以自己研究,坐标系,我们接着说,文档说我们可以使用reverseGeocoder这个函数进行逆地址解析,看一下他的参数,里面刚好有我们可以拿到的经纬度,这不就可以了吗!

源代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getCity(context) {
			//获取授权
			uni.authorize({
				scope: "scope.userLocation",
				success() {
					//引入腾讯地图对象
					let qqmapsdk = new QQMapWX({
						key: '您自己的key'
					});
					//成功以后获取位置信息
					uni.getLocation({
						type: 'gcj02', //这里是不同的地图api支持的格式不一样,腾讯的gcj02,因为这里返回的是一个具体的经纬度,所以我们需要逆地址解析进行匹配对应的位置
						success: function(res) {
							console.log('当前位置的经度:' + res.longitude);
							console.log('当前位置的纬度:' + res.latitude);
							qqmapsdk.reverseGeocoder({
								location:{
									longitude : res.longitude,
									latitude : res.latitude
								},
								success(res){
									//使用上下文赋值 这里您可以根据自己的需求记性赋值
									context.city = res.result.address_component.city;
									console.info(context.city)
									weathers(context.city).then((res)=>{
										console.info(res)
									})
								}
							})
						}
					});
				},
				fail(err) {
					uni.showToast({
						icon : none,
						title : '位置获取失败,部分功能不能使用!',
						duration : 2000
					})
					console.info(err)
				}
			})
			console.info(uni)
		}
  • 效果:

这里不要忘记下载好的qqmap-wx-jssdk.min.js,然后进行引入,不然是不行的!相信你们也知道!

获取用户基本信息

我们在开发的时候一般是需要获取到用户的头像和昵称等信息的,这里简单的说一下,毕竟文档写的也比较简单了! 获取用户基本信息 这里直接看源码吧!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getUserInfo() {
				let _self = this;
				uni.login({
					success(res) {
						console.info(res)
						let code = res.code;
						uni.getUserInfo({
							success(resp) {
								_self.nickName = resp.userInfo && resp.userInfo.nickName || "获取失败"
								_self.avatarUrl = resp.userInfo && resp.userInfo.avatarUrl || "获取失败"
								_self.show = false;
								_self.other_flag = true;
							},
							fail(err) {
								console.error(err)
							}
						})
					}
				})
			}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button open-type="getUserInfo" class="mine_btn" @getuserinfo="getUserInfo()" v-if="show">获取授权</button>
  • 效果:
  • 界面不要纠结,只是为了演示给你们看而已! 这里说一下,就是我们获取的时候文档没有直接说我们必须使用button,但是如果我们不使用的话,会发现可能不会成功,这里我们看一下文档怎么说的,button的介绍

首先我们需要定一个button,然后需要定义button的open-type的值,然后值必须是getUserInfo,这样才可以,额…真(m)不(m)错(p),知道就行了!

写到最后

关于怎么获取小程序的基本信息和地理位置就先写到这里吧!也不早了,后续会继续更新uniapp的知识点,毕竟路漫漫其修远兮,任重而道远啊!共勉!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序获取当前城市名称--逆地址解析
当然是看uniapp文档,我们查到有提供相关的API,即uni.getLocation(OBJECT),获取当前的地理位置、速度。
江拥羡橙
2022/11/17
2.2K0
微信小程序获取当前城市名称--逆地址解析
微信小程序结合腾讯地图获取用户所在城市信息
实现小程序进去后会获取用户当前所在城市,然后显示该城市的数据,并且显示在导航栏和 Tab上。
腾讯位置服务
2020/08/28
2K0
实战:在小程序中获取用户所在城市信息
最近在做自己的小程序《看啥好呢》,这个小程序是使用云开发的方式开发的,功能特别简单,就是获取豆瓣、大麦网的数据展示,虽然功能简单,但还是记录下开发过程和一些技术点,大约会有两篇博文产出,这是第一篇。GitHub地址
张张
2019/12/27
3K0
实战:在小程序中获取用户所在城市信息
【实战】在小程序中获取用户所在城市信息(附源码)
最近在做自己的小程序《看啥好呢》,这个小程序是使用云开发的方式开发的,功能特别简单,就是获取豆瓣、大麦网的数据展示,虽然功能简单,但还是记录下开发过程和一些技术点,大约会有两篇博文产出,这是第一篇。GitHub地址
张张
2019/12/23
1.6K0
【实战】在小程序中获取用户所在城市信息(附源码)
微信小程序—经纬度逆地址解析的实现「建议收藏」
最近遇到工作中遇到一个需求,当用户打开小程序时,小程序页面中对应的位置信息变为用户当前位置,且用户能更改当前地址信息;看到这个需求我想大部分人和我想到的就是使用微信官方API中的wx.getLocation来实现,通过它我们能拿到当前位置的经纬度,之后将经纬度转换为地址信息。
全栈程序员站长
2022/09/14
3.6K0
微信小程序—经纬度逆地址解析的实现「建议收藏」
uni-app 微信小程序中关于 map 地图使用案例分享
 这篇文章,我将带领大家使用微信内置地图详细讲解关于如何配置地图、打开地图和使用地图。
跟着飞哥学编程
2022/12/02
5.7K0
校园跑腿小程序通过位置获取当前学校
图片底部中,最下面是当前地址,当前地址可以根据逆地址解析获取,上面的是附近学校(通过城市码和地区码对比),在搜索到其他关联的店铺数据
德宏大魔王
2023/08/08
3610
校园跑腿小程序通过位置获取当前学校
微信小程序类快递自动填写收发货地址功能
获取当前位置信息或者某地的行政区划信息或者街道信息,实现类似电商平台填写收货地址功能。
腾讯位置服务
2021/03/26
1.7K0
微信小程序获取当前位置和城市名
1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting; 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数); 3,微信没有将经纬度直接转换为地理位置,借用腾讯位置服务中关于微信小程序的地理转换JS SDK 的API(返回信息中包括国家,省,市,区,经纬度等地理位置) 步骤描述清楚以后,下面就开始按步骤操作了;(本文仅仅讲述如何获取用户地理位置的授权)
江一铭
2022/06/16
3.9K0
微信小程序获取当前位置和城市名
「教程」微信小程序获取地理位置信息自动查询天气预报信息(附详细代码)
天气预报是我们日常生活中经常关注的信息之一。通过结合微信小程序的地理位置获取和天气预报查询 API,我们可以轻松实现自动获取当前位置的天气信息。
用户10428865
2023/05/25
9830
小程序地图学习之获取位置 获取经纬度 获取地名 获取地址
我们在做小程序开发时,难免会遇到地图相关的开发,而小程序已经为我们提供的比较完善的地图组件。我们只需要调用相关的api就可以实现大致的功能。如:获取经纬度,获取位置,获取地址,获取地名。接下来就具体给大家讲解
编程小石头
2020/10/22
1.8K0
小程序地图学习之获取位置 获取经纬度 获取地名 获取地址
「 小程序踩坑 」获取用户地理位置名称
通过百度查阅得知,普遍的做法就是先用wx.getLocation获取当前经纬度,然后再利用腾讯地图提供的接口,获取出实时地理名称,很简单,但是腾讯地图接口那里有坑。
许坏
2019/07/09
1.2K0
「 小程序踩坑 」获取用户地理位置名称
获取定位信息
获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定 highAccuracyExpireTime 作为超时时间。地图相关使用的坐标格式应为 gcj02。
Remember_Ray
2020/10/29
2.1K0
获取定位信息
微信小程序 地图定位、选址,解决regionchange重复调用
【注意】getLngLat()这个方法做了抽取,因为不光初始化要调用,且在视野发生变化的时候也要调用
yechaoa
2022/06/10
2.1K0
微信小程序 地图定位、选址,解决regionchange重复调用
小程序的地理位置与地图功能实现
地理位置和地图功能在小程序开发中被广泛应用,例如外卖配送、打车服务、旅游导航、社交签到等。微信小程序提供了 wx.getLocation 和 wx.openLocation 等 API 获取用户位置,并支持 腾讯地图 或 高德地图 进行地图显示和交互。本文将详细介绍 小程序地理位置的获取、地图组件的使用、标记点和路线规划的实现,并结合示例代码进行分析。
LucianaiB
2025/01/29
5310
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
达达前端
2020/12/28
6.6K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度
首先检验用户是否授权位置信息的权限“scope.userLocation”,如果有授权,我们就可以直接去获取用户的位置经纬度了。如果没有授权,我们就弹窗引导用户去设置页。去设置页的方法如下
编程小石头
2020/10/22
4.4K0
微信小程序弹出用户授权弹窗,微信小程序引导用户授权,获取位置经纬度
uniapp 与 webview 在app中参数传递
webview默认占用全屏,建议使用uniapp原生导航栏,不然还要自己画,全局关闭的,可以单独页面开启,新增时设置top和bottom
风花一世月
2024/03/19
8110
腾讯位置服务开发应用-使用教程,案例分享,知识总结
作为一名在职岗位为【前端开发工程师】的程序员,我开发的应用程序经常需要获取用户位置信息,需要再某些场合下使用展示地图以及地图商的某些地点,需要获取行政区划列表(省市区)以及地址详情信息,需要在地图上规划一条(动态)路线,轨迹回放,小车移动,需要创建信息窗口,用于地点的摘要性信息的展示。
腾讯位置服务
2021/07/29
3.1K0
腾讯位置服务开发应用-使用教程,案例分享,知识总结
uni-app APP地图移动时获取地图中心点经纬度坐标
<map id="maps" style="width: 100%" class="myMap position-absolute top-0 left-0 right-0 bottom-0" :style="{height: `${mapHeight}rpx`}" :latitude="latitude" :longitude="longitude" :polygons="pol" @regionchange="regionChange">
切图仔
2022/09/08
2.2K0
推荐阅读
相关推荐
微信小程序获取当前城市名称--逆地址解析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验