WXRUI体验二维码
如果文章对你有帮助的话,请打开微信扫一下二维码,点击一下广告,支持一下作者!谢谢!
问题
在做一个小程序时,进入首页需要获取用户的当前位置经纬度,然后去服务器查询当前位置周边的网吧。在安卓关闭定位设置时,wx.getLocation(OBJECT) API依然能够获取当前位置的经纬度;但是iOS如果关闭定位设置,wx.getLocation(OBJECT) API就会失败!
解决办法
-
根据官网解决的实际用法
Page({
onShow(){
// 获取当前地址
wx.getLocation({
success: res => {
//获取定位成功,请求附近店铺列表
this.getShopList(res);
},
fail: res => {
//接口调用失败,提示用户打开定位功能
this.wetoast.toast({ title: '获取定位失败,请打开定位,重新进入!' });
}
})
}
})
注意
- iOS关闭定位会导致 wx.getLocation(OBJECT) 调用失败,所以直接在接口调用失败的函数进行提示用户打开定位。
- 必须在 onShow 的生命周期进行当前位置的获取,是由于当第一次进入小程序,该页面已经加载完成,去设置定位时,小程序只是进行了 onHide 生命周期,所以在打开定位再次进入小程序的时候只会进行 onShow 生命周期而不会进行 onLoad 生命周期,因此需要在 onShow 生命周期获取当前位置!
- 注意如果是要进行分页处理,在 success 函数中需要对页码进行初始化,防止再次进入的时候请求页码大于总页数导致没有值!