2017-08-10 31 views
2

我的应用需要“始终”位置权限。如果应用程序直接询问“永远”,Apple会提供复杂的位置权限选项,所以我开始要求“在使用中”,然后“始终”。这为用户提供了第一个“同时使用”的对话框,其中包含“不允许”和“允许”按钮,这非常棒。不过,我希望下一个对话框具有这些相同的按钮(假设他们允许'使用'),并且在升级到iOS 11 Beta 5之前我已经得到了这个(我不确定 - 我可能跳过了一对测试版)。即使“使用中”权限已经存在,我也会看到复杂的按钮文本(例如“使用应用程序时”和“始终”而不是'不允许'/'允许')理所当然的。在iOS中简化位置权限提示11

我想给用户更简单的选项。我认为用户阅读这些许可对话的频率就像他们阅读EULA一样多,而且如果它不是一个简单的允许/不允许的话,大多数人只会选择一个随机选项而不是阅读,而我的应用程序将没有权限需要。

这是可能的最新的iOS 11测试版吗?并且在最终的iOS 11中可能吗?我认为这是苹果公司在提示 - 这里的一些建议(从https://m.rover.io/wwdc-2017-update-significant-updates-to-location-permissions-coming-with-ios-11-41f96001f87f):

对于那些始终追求的权限级别,苹果公司目前正在建议一个新的许可流程基本上是一个分两个阶段。第一个阶段或初始入职,应该只要求“在使用”权限...

+0

我有同样的问题。你有没有找到解决办法? –

+0

请看看这个解决方案 - https://stackoverflow.com/a/46339284/3024579 – Alok

回答

3

对话框保持不变为iOS 11.

随着requestWhenInUseAuthorization()的iOS将呈现这些选项:

enter image description here

如果用户允许访问的位置,同时在使用,后来你问到经常访问的位置,requestAlwaysAuthorization(),iOS设备会出现这些选项。您已经到达这里的好处是Don't Allow Any Access不提供:

enter image description here

如果你要求requestWhenInUseAuthorization()之前要求requestAlwaysAuthorization()马上,iOS版将呈现这些选项:

enter image description here

所以解决你的问题,建议不要仅仅请求iOS对话框,而是要用你自己的预对话准备用户。只有在确定用户将接受时才请求iOS对话框。这会降低用户拒绝访问的机会,但可能在其他情况下允许访问。一旦用户拒绝,您不能再请求iOS对话框。


在一般注:

我认为用户阅读,因为他们经常 读的EULA

坦白说,这些权限对话框,这不应该是在基本假设我们开发应用程序工作流并管理用户隐私。

高科技公司和公众话语也越来越注重用户的隐私。给予选择显然是不够的,工作的一部分,是教育用户,给予他们的位置24/7与未知的数据保护法的一些可能未知的爱好开发商或公司在一个国家是不一样的点击Yes上的EULA。此外,法律更改要求共享您的现场位置等敏感信息不得隐藏在EULA的某处,但必须由用户明确加入。

值得庆幸的是像苹果公司的努力确保负责访问用户数据开发人员构建强大的功能。要做到这一点,只能通过显示提示(如所提到的提示)向用户提供选择。因为替代方案可能没有数据共享或法律规定的更高的障碍。

+0

“......而用户也不能使用带有requestAlwaysAuthorization()的应用程序,你再问访问的位置......”做你知道“稍后”有多少时间 - 一分钟或一小时的应用程序使用情况或位置跟踪? – Lachezar

+1

@Lachezar你可以随时请求'requestAlwaysAuthorization'。 iOS没有时间限制。 – Manuel

+0

事实上,我是在info.plist中失踪NSLocationAlwaysAndWhenInUseUsageDescription,我想知道为什么在权限对话框不显示:/ – Lachezar