小程序判断是否授权位置信息和手动授权

文章目录

    • 概要
    • 微信小程序的,使用的是高德地图

概要

当用户来到页面之后就会弹出是否授权弹框,但是如果第一次关闭之后,下一次再过来的话页面的授权弹框就不出现了,针对于这种情况写了一个方法

微信小程序的,使用的是高德地图

	getLocationPodel() {
				let that = this
			
					wx.getSetting({
					    success: (res) => {
					     if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {//非初始化进入该页面,且未授权
						  wx.showModal({
					       title: '是否授权当前位置',
					       content: '需要获取您的地理位置,请确认授权,否则无法获取您所需数据',
					       success: function (res) {
					        if (res.cancel) {
					         
					        } else if (res.confirm) {
					         wx.openSetting({
					          success: function (dataAu) {
					           if (dataAu.authSetting["scope.userLocation"] == true) {
					            wx.showToast({
					             title: '授权成功',
					             icon: 'success',
					             duration: 1000
					            })
					            //再次授权,调用getLocationt的API
					            that.getLocation1();
					           } else {
					            wx.showToast({
					             title: '授权失败',
					             icon: 'success',
					             duration: 1000
					            })
					           }
					          }
					         })
					        }
					       }
					      })
					     } else if (res.authSetting['scope.userLocation'] == undefined) {//初始化进入
					      that.getLocation1();
					     }
					     else { //授权后默认加载
					      that.getLocation1();
					     }
					    }
					})
			
			},
			getLocation1() {
				let that = this
				uni.getLocation({
					type: 'wgs84',
					success: function (res) {
						that.getLocation(res.latitude,res.longitude)
					},
					fail:function(res) {
						console.log('dfvdfvdfv')
					}
				});
			},
			getLocation(latitude,longitude) {
				let that = this
				 //根据经纬度获取城市信息
				wx.request({
					url: 'https://apis.map.qq.com/ws/geocoder/v1',
					data: {
						key:'自己的key值,
					    location:`${latitude},${longitude}`
					},
					success: (res) => {
						let address = res.data.result.address_component
						that.city = address.city
						that.province = address.province
					},
					fail: () => {},
					complete: () => {}
				});
			},

你可能感兴趣的:(小程序)