我正在使用Cordova for iOS开发一个应用程序,其中包括地理位置功能(我使用官方插件https://github.com/apache/cordova-plugin-geolocation)。我在应用程序的选项中看到,位置访问可以设置为“从不”或“在使用应用程序时”。但是,其他一些应用程序也可以选择“始终”,如附带的屏幕截图所示。我想知道是否可以为基于Cordova的应用程序选择“Always”。
谢谢!
答案 0 :(得分:1)
我猜“NSLocationAlwaysUsageDescription”键是您正在寻找的键。查看此link,其中详细说明了在基于cordova的应用程序中要进行的设置,以便持续访问位置。
答案 1 :(得分:1)
我使用Ionic 2并且必须将以下内容添加到我的App-Info.plist文件中。即使cordova插入&NSKocationAlwaysUsageDescription'和' NSLocationWhenInUseUsageDescription'键。这只给了一个“永远不会”。和#39;使用App'发布选项。 Xcode建议使用下面的选项,这对我有用。
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app requires background location tracking</string>
答案 2 :(得分:1)
我在我公司的Cordova应用程序中使用了NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription,它正在运行。然后,在2017年底,它停止了。
我的修复方法是添加NSLocationAlwaysAndWhenInUseUsageDescription。
更广泛地说,请注意您需要有一个插件,允许在后台跟踪位置,并确保在XCode中启用必要的后台模式选项。 我们使用以下插件来完成这项工作: https://www.npmjs.com/package/cordova-plugin-lents-background-geolocation
这种类型的插件是必要的,因为iOS会在显示器关闭后约3分钟停止执行应用程序脚本,无论显示器关闭时应用程序的前景/背景情况如何。这可以防止任何JavaScript代码运行,因此任何基于setInterval或setTimeout的GPS跟踪都将停止工作。