Cordova 应用程序,背景模式不适用于 iOS

Cordova app, backgroundmode does not work on iOS

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

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

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

我已确保在应用程序的 plist 中设置了 UIBackgroundModes 属性(它有两项:"App plays audio or streams audio/video using AirPlay" 和 "App registers for location updates")。

知道我遗漏了什么吗?

如果您的应用使用 setTimeout 或 setInterval 每 5 秒收集一次用户的位置,这将无法在后台运行 iOS。 要使 iOS 后台位置模式正常工作,您的应用需要使用 navigator.geolocation.watchPosition().

注册位置更新

每次 iOS 定位服务收到位置更新时,您注册成功的函数都会被调用。无论应用在后台还是前台都会被调用,但不会在固定的时间间隔。