uni.startLocationUpdate({
type: "wgs84",
success: res => {
console.log('开启应用接收位置消息成功')
uni.onLocationChange(function(_res) {
// console.log('纬度:' + _res.latitude);
// console.log('经度:' + _res.longitude);
that.lat = _res.latitude;
that.lng = _res.longitude;
});
uni.onLocationChangeError(function(_res) {
console.log("获取定位异常" , _res)
});
},
fail: err => console.error('开启应用接收位置消息失败:', err),
complete: msg => console.log('调用开启应用接收位置消息 API 完成')
});
- 发布:2025-01-07 15:27
- 更新:2025-01-07 16:19
- 阅读:35
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows
HBuilderX类型: 正式
HBuilderX版本号: 3.99
手机系统: Android
手机系统版本号: Android 14
手机厂商: 荣耀
手机机型: Magic Pro 3
页面类型: vue
vue版本: vue2
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
息屏后,uni.onLocationChange返回实时经纬度
息屏后,uni.onLocationChange返回实时经纬度
实际结果:
息屏后,uni.onLocationChange返回一直是息屏前的最后一次获得的经纬度
息屏后,uni.onLocationChange返回一直是息屏前的最后一次获得的经纬度
bug描述:
代码逻辑:使用uni.startLocationUpdate开启定位监测,然后设置了uni.onLocationChange的回调函数返回实时经纬度。
BUG:息屏之后onLocationChange 返回的经纬度不会变化,一直返回息屏前的经纬度?亮屏后,返回的经纬度又正常了。
2 个回复
BoredApe - 有问题就会有答案。
iOS
可以配置后台运行能力。参考文档:https://uniapp.dcloud.net.cn/tutorial/app-ios-uibackgroundmodes.html#android
系统本身不支持后台模式,或者说android
切换到后台是可以继续运行的,只是后台优先级比较低,当系统资源不足时会自动回收后台应用。建议
Android
平台可以搜索uni
原生插件中的保活插件来实现请参考:https://ext.dcloud.net.cn/search?q=%E4%BF%9D%E6%B4%BB
2***@qq.com
一般都是使用保活插件,再配合这个API进行使用