微信小程序获取地理位置及经纬度授权代码实例
这篇文章主要介绍了微信小程序获取地理位置及经纬度授权代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
微信小程序获取地理位置授权,首先需要在app.json中添加配置:
"permission":{
"scope.userLocation":{
"desc":"请确认授权"
}
}
获取经纬度:如果手机未开启位置信息,那么授权成功后在wx.getLocation()方法中也会一直失败,所以需要在fail方法中提示用户开启手机位置信息
getUserLocation:function(){
letvm=this
wx.getSetting({
success:(res)=>{
//res.authSetting['scope.userLocation']==undefined表示初始化进入该页面
//res.authSetting['scope.userLocation']==false表示非初始化进入该页面,且未授权
//res.authSetting['scope.userLocation']==true表示地理位置授权
//拒绝授权后再次进入重新授权
if(res.authSetting['scope.userLocation']!=undefined&&res.authSetting['scope.userLocation']!=true){
//console.log('authSetting:status:拒绝授权后再次进入重新授权',res.authSetting['scope.userLocation'])
wx.showModal({
title:'',
content:'【泰福利Lite】需要获取你的地理位置,请确认授权',
success:function(res){
if(res.cancel){
wx.showToast({
title:'拒绝授权',
icon:'none'
})
setTimeout(()=>{
wx.navigateBack()
},1500)
}elseif(res.confirm){
wx.openSetting({
success:function(dataAu){
//console.log('dataAu:success',dataAu)
if(dataAu.authSetting["scope.userLocation"]==true){
//再次授权,调用wx.getLocation的API
vm.getLocation(dataAu)
}else{
wx.showToast({
title:'授权失败',
icon:'none'
})
setTimeout(()=>{
wx.navigateBack()
},1500)
}
}
})
}
}
})
}
//初始化进入,未授权
elseif(res.authSetting['scope.userLocation']==undefined){
//console.log('authSetting:status:初始化进入,未授权',res.authSetting['scope.userLocation'])
//调用wx.getLocation的API
vm.getLocation(res)
}
//已授权
elseif(res.authSetting['scope.userLocation']){
//console.log('authSetting:status:已授权',res.authSetting['scope.userLocation'])
//调用wx.getLocation的API
vm.getLocation(res)
}
}
})
},
//微信获得经纬度
getLocation:function(userLocation){
letvm=this
wx.getLocation({
type:"wgs84",
success:function(res){
//console.log('getLocation:success',res)
varlatitude=res.latitude
varlongitude=res.longitude
vm.getDaiShu(latitude,longitude)
},
fail:function(res){
//console.log('getLocation:fail',res)
if(res.errMsg==='getLocation:fail:authdenied'){
wx.showToast({
title:'拒绝授权',
icon:'none'
})
setTimeout(()=>{
wx.navigateBack()
},1500)
return
}
if(!userLocation||!userLocation.authSetting['scope.userLocation']){
vm.getUserLocation()
}elseif(userLocation.authSetting['scope.userLocation']){
wx.showModal({
title:'',
content:'请在系统设置中打开定位服务',
showCancel:false,
success:result=>{
if(result.confirm){
wx.navigateBack()
}
}
})
}else{
wx.showToast({
title:'授权失败',
icon:'none'
})
setTimeout(()=>{
wx.navigateBack()
},1500)
}
}
})
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。