Cordova app,backgroundmode在iOS上不起作用

时间:2015-02-06 10:21:32

标签: ios iphone cordova sencha-touch background-process

我有一个使用Sencha Touch和Cordova构建的应用程序。该应用程序基本上是一个谷歌地图地图,每5秒收集一次用户的位置。

我已经安装了这个BackgroundMode插件:https://github.com/katzer/cordova-plugin-background-mode

这似乎适用于Android手机,但在iPhone上,如果用户关闭屏幕,我就无法获得用户的位置。

我确保在应用程序的plist中设置了UIBackgroundModes属性(它有两个项目:“App使用AirPlay播放音频或流音频/视频”和“应用寄存器进行位置更新”)。

我缺少什么想法?

1 个答案:

答案 0 :(得分:1)

如果你的应用使用setTimeout或setInterval来每5秒收集一次用户的位置,那么这在iOS的后台无效。 要使iOS背景位置模式起作用,您的应用需要使用navigator.geolocation.watchPosition()注册位置更新。

每次iOS位置服务收到位置更新时,都会调用您向其注册的成功功能。无论应用程序是在后台还是前台,都将调用此方法,但不会以固定的时间间隔进行调用。