【发布时间】:2018-04-20 22:59:04
【问题描述】:
我想在后台每 10 秒跟踪一次用户坐标,所以我使用了 cordova-plugin-mauron85-background-geolocation。它在前台或后台的 android 中运行良好,但在 IOS 中它不能在后台运行(它可以工作仅在前台)
在后台它不会触发成功( SetLocationUpdates )函数,并且它不会给出错误,它不会触发错误函数。
这是我的 config.xml
<plugin name="cordova-plugin-geolocation" source="npm" spec="2.4.1" />
<plugin name="cordova-plugin-mauron85-background-geolocation" spec="2.3.0">
<variable name="ALWAYS_USAGE_DESCRIPTION" value="xxx permission xx" />
</plugin>
<preference name="phonegap-version" value="cli-6.5.0" />
这是我的html页面代码
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady () {
backgroundGeolocation.configure(SetLocationUpdates, onError, {
desiredAccuracy: 10,
stationaryRadius:1,
distanceFilter: 1,
interval: 10000
});
backgroundGeolocation.start();
//backgroundGeolocation.switchMode(backgroundGeolocation.mode.FOREGROUND);
}
}
function onError(error) {
alert("error:"+error.message);
}
function SetLocationUpdates(position){
//store position to database via ajax call.....
它在前台工作得很好,所以我尝试在切换模式下强制它进入前台,但它不起作用
backgroundGeolocation.switchMode(backgroundGeolocation.mode.FOREGROUND,switchModesuccess, switchModefail);
【问题讨论】:
-
试图实现相同的;但就我而言,它甚至在 Android 中也不起作用。
标签: ios cordova geolocation phonegap-plugins phonegap-build