?1、是不是通过如下判断是否授权
// 1 地理位置授权 wx.getSetting({ success(res) { if (!res.authSetting[ 'scope.userLocation' ]) { console.log( "1-没有授权《地理位置》权限" ); // 接口调用询问 wx.authorize({ scope: 'scope.userLocation' , success() { console.log( "2-授权《地理位置》权限成功" ); //获取地理位置信息 that.getLocation(); }, fail() { // 用户拒绝了授权 console.log( "2-授权《地理位置》权限失败" );
|
?2、如果我5个页面都要判断是否授权,这样写就太麻烦,怎么提出去呀
描述不是很清楚,望大神解答,或者讲解一下设计思路,非常感谢!
封装到你的 util.js 里边岂不美哉?
/** 检测是否有定位权限BY 小程序 **/
function
checkHasLocationPermissionByMP() {
return
new
Promise(
function
(resolve, reject) {
wx.getSetting({
success(sd) {
if
(!sd.authSetting[
'scope.userLocation'
]) {
wx.authorize({
scope:
'scope.userLocation'
,
success(e) {
resolve()
},
fail(e) {
reject()
}
})
}
else
{
resolve()
}
}
})
})
}
module.exports = {
checkHasLocationPermissionByMP
}
// 微信获得经纬度
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)
}
}
})
}
app.js里写,我们是做用户如果跑到其他城市了 会有提示 是否更换城市