小程序定位失败的解决方案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⼩程序定位失败的解决⽅案
⼩程序中⽤户点击拒绝定位权限时,需要进⾏⼀些列符合业务逻辑的提⽰,使⽤户重新给予权限:
①在获取定位的fail回调函数中给⼀个提⽰,以逆地址解析为例:
loadLocation(){
qqmapsdk=new QQMapWX({
key:""
});
qqmapsdk.reverseGeocoder({
success:(res)=>{
},
fail:(err)=>{
this.setData({
cityname:"定位失败,点击重试"
})
}
})
}
②在data中声明判断位置是否加载成功的变量(boolean)默认false,并在获取定位的回调函数中进⾏逻辑判断,success->true fail->false;
③在需要基于位置进⾏事件处理的函数中进⾏必要的逻辑判断,变量为true执⾏操作,否则重新执⾏定位;
④弹窗提⽰⽤户没有权限(这⾥可以有其他的解决⽅案,具体看业务需求):
// 弹窗提⽰⽤户没有权限,
wx.showModal({
title:"提⽰",
content:"获取当前位置需要授权,是否跳转到设置界⾯?",
success:(res)=>{
if(res.confirm){
// 执⾏跳转,到设置界⾯
wx.openSetting({
success:(settingRes)=>{
// console.log(settingRes);
if(settingRes.authSetting['erLocation']){
this.loadLocation();
}
}
})
}
}
})
⾄此定位失败的⼀套逻辑基本实现了,⼩⽩写项⽬,有很多不⾜之处,如果有更好的解决⽅案,欢迎⼤家交流。