微信小程序首页定位

使用uni-app开发微信小程序.
之前在app.js定位,然后传给首页,这样获取不到值,就把定位代码写在了首页.

<template>
	<view class="content">
		<view class="">
			定位地址:{{city}}
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				locationStatus:false,//是否定位过
				city:'定位中...'
			}
		},
		onShow() {
			// 判断是否定位过,如果没有定位,就执行定位
			if(this.locationStatus==false){
				this.dingwei()
				uni.setStorageSync('locationStatus',true)
				this.locationStatus=uni.getStorageSync('locationStatus')
			}else{ //若定位过,直接把本地的定位地址赋值
				this.city=uni.getStorageSync('city')
			}
			
		},
		onLoad() {
		},
		
		methods: {
			// 打开设置
			openConfirm(){
				uni.showModal({
					title: '请求授权当前位置',
					content: '需要获取您的地理位置,请确认授权',
					success:(res=>{
						if(res.confirm){
							uni.openSetting();// 打开地图权限设置
						}else if(res.cancel){
							uni.showToast({
								title: '你拒绝了授权,无法获得周边信息',
								icon: 'none',
								duration: 1000                            
							})
						}
					}) 
				})
			},
			// 定位
			dingwei(){
				var that = this
				// 授权
				uni.authorize({
				    scope: 'scope.userLocation',
				    success() {
						// 定位
				       uni.getLocation({
				           type: 'gcj02',
				           success: function (res) {
				               console.log('当前位置的经度:' + res.longitude);
				               console.log('当前位置的纬度:' + res.latitude);
				       		var longitude = res.longitude
				       		var latitude= res.latitude
				       		var location = latitude+','+longitude
				       		console.log(location)
							// 逆解析地址 个人秘钥
				       		wx.request({
				       		    url: 'https://apis.map.qq.com/ws/geocoder/v1/?key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&get_poi=1',
				       			data:{
				       				location:location
				       			},
				       			method: "get",
				       		    success: (res) => {
				       		        console.log(res.data.result.address);
									uni.setStorageSync('city',res.data.result.address)
									that.city=uni.getStorageSync('city')
				       		    }
				       		});
				           }
				       });
				    },
					fail(){    // 拒绝授权
						that.openConfirm();
						console.log("你拒绝了授权,无法获得周边信息")
					}
				})
			}
		}
	}
</script>

<style>
</style>

posted @ 2020-10-26 13:37  漫漫码农路  阅读(325)  评论(0编辑  收藏  举报