iOS 11定位技术的新增功能

在许多iOS应用程序中,访问用户的位置是一项重要功能。 在最近的iOS 11更新中,访问位置的方法已进行了一些更改。 让我详细介绍有关在iOS 10以及更新iOS 11之前和之后访问位置的方式的详细信息。

iOS 10及更低版本

开发人员可以使用以下方式访问位置:

1.“使用时”访问

2.“始终”访问

1.“使用时”访问

当应用程序当前处于活动状态时,开发人员将使用“使用时”访问权限。 在某些情况下,当应用程序处于后台时,该应用程序需要跟踪位置,但是“使用时”访问仍然足够。 在后一种情况下,状态栏下方会显示一个蓝色栏,表示该应用正在跟踪您的位置。

Info.plist文件中使用NSLocationWhenInUseUsageDescription键描述了为什么应用程序需要访问该位置。 在设置应用程序中,用户可以在选项“ 从不 ”和“ 使用应用程序时 ”之间进行选择。

2.“始终”访问

开发人员将“始终”访问权限用于需要跟踪您的位置的应用,即使您的应用未处于活动状态也是如此。 API就像重大更改API,它会在用户移动到特定距离时发出通知,而区域监视API会在用户移动或离开特定位置时发出通知。

Info.plist文件中使用NSLocationAlwaysUsageDescription键描述了为什么需要始终访问应用程序的原因。 在位置许可设置中,将显示“ 从不 ”和“ 始终 ”。

从iOS 11

使用上述“使用时”访问权限的那些应用程序没有重大变化。 但是根据苹果公司的报告,有21%的应用程序使用“始终”访问。 这些应用可能必须重新考虑所做的更改才能完美运行。

在开发适用于iOS 11的应用时,无论您要求的许可类型如何,都应提供NSLocationWhenInUseUsageDescription 。 如果需要“始终”访问,则应在info.plist中另外提供NSLocationAlwaysandWhenInUseUsageDescription键。 因此,从现在开始,说明应包含用户在相应模式下可以使用的功能。

注意:但是, 需要 NSLocationAlwaysUsageDescription ”才能支持iOS 10及以下版本的向后兼容性。

三种访问位置的方法:

1.“使用时”访问

2.“始终”访问

3.先“使用时”访问,然后再“始终”访问

1.“使用时”访问

它在iOS 11上的工作方式也与以前相同。

2.“始终”访问

现在,在这种情况下,以前会向用户提示“允许”或“不允许”。 但是从iOS 11开始,您将看到“允许”,“不允许”和“仅在使用应用程序时”。

3.先“使用时”访问,然后再“始终”访问

这是Apple针对iOS 11应用程序推荐的方法。 也称为“两阶段”方法。 当您首次要求“使用时”时,它会提示“允许”和“不允许”。 大多数用户都会对此表示赞许,您可以使用此权限为用户提供基本的用户体验。 一段时间后,当您感到“始终”访问是强制性的时,您现在可以请求“始终”许可。 但是现在,提示将包含“始终允许”和“仅在使用应用程序时”。

请注意,此提示没有“不允许”选项,因为在第一步本身已经提供了权限。

位置状态的蓝色条

在iOS11之前,状态栏下方会显示蓝色条,指示该应用当前正在使用您的位置。 但这对于在后台具有“使用时”访问权限的应用程序会显示出来。

从iOS 11开始,无论使用精确跟踪API从后台跟踪位置时,无论您从用户获得哪种权限,都将显示此栏。 但是,对于使用精度较低的API(例如重大更改或区域监视API)的应用,将不会显示该消息。 因此,建议您仅调用位置API,并尽可能减少调用精确跟踪API的频率。

跟踪箭头

在iOS 11之前,基于所使用的位置服务,出现在主屏幕右上角的跟踪箭头将被填充或填充。 但是苹果公​​司认为这是不公平的。 因为考虑了两个应用程序,所以第一个连续跟踪位置的应用程序将由实心实心箭头显示。 而另一个使用了重大更改API的应用程序也会产生实心箭头,即使该应用程序与以前的情况相比仅被调用了几次。

从iOS 11开始,当应用程序请求定位时,将出现一个空心箭头。 然后,当应用实际接收到位置数据时,箭头将被填充几秒钟,在试用状态下,大约需要10秒钟。 这样,许多应用程序可能会经常显示实心箭头。

因此,我们已经看到了在iOS 10和iOS 11中访问位置的不同方法。iOS11中带来的更改有助于使应用程序体验更好。