iOS cordova允许位置访问'Always'

问题描述:

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

enter image description here

谢谢!

我想“NSLocationAlwaysUsageDescription”键是你正在寻找的。请查看此link,其中详细介绍了在基于cordova的应用程序中进行的设置,以实现持续的位置访问。

+0

你好,谢谢你的回答,但有一个误解。我想要“总是”选项,我不想修改3个选项下的文本。 – Pierre

+0

@Pierre您的意思是3种选项下的文字是什么意思?这是你看我猜 - NSLocationAlwaysUsageDescription我的应用程序需要不断访问您的位置,即使屏幕关闭。 Gandhi

+0

我更新了我的照片,以便顺序更清晰 – Pierre

我正在使用Ionic 2,必须将以下内容添加到我的App-Info.plist文件中。即使cordova插入'NSLocationAlwaysUsageDescription'和'NSLocationWhenInUseUsageDescription'键。这只在发布时提供了“从不”和“使用应用程序”选项。 Xcode建议使用下面的选项,并为我工作。

 <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> 
     <string>This app requires background location tracking</string> 

我在我公司的科尔多瓦应用程序同时使用NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription和它的工作。然后,在2017年底,它停了下来。

对我来说,修复方法是添加NSLocationAlwaysAndWhenInUseUsageDescription。

更广泛地说,请注意,您需要有一个插件允许在后台跟踪位置,并确保在XCode中启用必要的背景模式选项。 我们使用下面的插件来完成这项工作: https://www.npmjs.com/package/cordova-plugin-lents-background-geolocation

这种类型的插件是必要的显示被关闭大约3分钟后如的iOS停止对应用程序的脚本的执行,而不管该应用前景/背景条件时显示屏已关闭。这可以防止任何JavaScript代码运行,因此基于setInterval或setTimeout的任何GPS跟踪都将停止工作。