iOS cordova允许位置访问'始终'

时间:2016-04-29 07:05:36

标签: ios cordova geolocation cordova-plugins

我正在使用Cordova for iOS开发一个应用程序,其中包括地理位置功能(我使用官方插件https://github.com/apache/cordova-plugin-geolocation)。我在应用程序的选项中看到,位置访问可以设置为“从不”或“在使用应用程序时”。但是,其他一些应用程序也可以选择“始终”,如附带的屏幕截图所示。我想知道是否可以为基于Cordova的应用程序选择“Always”。

enter image description here

谢谢!

3 个答案:

答案 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跟踪都将停止工作。