您的位置:首页 > 移动开发 > 微信开发

微信小程序获取地理位置及经纬度授权代码实例

2019-09-18 15:05 1371 查看

这篇文章主要介绍了微信小程序获取地理位置及经纬度授权代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

微信小程序获取地理位置授权,首先需要在app.json中添加配置:

"permission": {
"scope.userLocation": {
"desc": "请确认授权"
}
}

获取经纬度:如果手机未开启位置信息,那么授权成功后在wx.getLocation()方法中也会一直失败,所以需要在fail方法中提示用户开启手机位置信息

getUserLocation: function () {
let vm = 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)
} else if (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)
}
}
})
}
}
})
}
// 初始化进入,未授权
else if (res.authSetting['scope.userLocation'] == undefined) {
// console.log('authSetting:status:初始化进入,未授权', res.authSetting['scope.userLocation'])
//调用wx.getLocation的API
vm.getLocation(res)
}
// 已授权
else if (res.authSetting['scope.userLocation']) {
// console.log('authSetting:status:已授权', res.authSetting['scope.userLocation'])
//调用wx.getLocation的API
vm.getLocation(res)
}
}
})
},
// 微信获得经纬度
getLocation: function (userLocation) {
let vm = this
wx.getLocation({
type: "wgs84",
success: function (res) {
// console.log('getLocation:success', res)
var latitude = res.latitude
var longitude = res.longitude
vm.getDaiShu(latitude, longitude)
},
fail: function (res) {
// console.log('getLocation:fail', res)
if (res.errMsg === 'getLocation:fail:auth denied') {
wx.showToast({
title: '拒绝授权',
icon: 'none'
})
setTimeout(() => {
wx.navigateBack()
}, 1500)
return
}
if (!userLocation || !userLocation.authSetting['scope.userLocation']) {
vm.getUserLocation()
} else if (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)
}
}
})
}

以上就是本文的全部内容,希望对大家的学习有所帮助

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息