从用户请求位置的权限,当我使用的时候,我有一个问题iOS11我info.plist中包含位置权限问题11的iOS和iOS 10
<key>NSLocationWhenInUseUsageDescription</key>
<string>When in use permissions</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>always permissions</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Always and in usage permissions</string>
我有两个映射一个客户和其他员工。对于员工而言,我需要知道使用
locationManager.requestAlwaysAuthorization()
对于客户我只需要同时位置,即使应用程序没有运行或者转到后台(签约时,他们能够将其关闭),它们的位置,并要求允许该应用程序正在使用中,并要求使用
locationManager.requestWhenInUseAuthorization()
在iOS系统11这只是请求允许在使用的时候,从来没有在总的权限的权限。
在iOS 10中它具有正确的行为。
我想要的行为如下: 当他们是客户(未登录)时,它只会要求在使用时的权限。如果他们登录(员工),即使在不使用时也请求位置。
如果任何人都可以阐明我错过/做错了什么,将不胜感激。
需要注意的是,如果我删除权限NSLocationAlwaysUsageDescription
iOS10和iOS11有同样的问题不总是请求权限。
稍微澄清一点。 我已经实现了didChangeAuthorization委托函数,并且当用户允许来自调用requestWhenInUseAuthorization()
的警报的权限时被调用,但是当我在位置管理器上调用requestWhenInUseAuthorization()
函数时,委托方法未被调用,就好像它从不接收该调用并且没有提示对话框显示给用户。
您是在真实设备上测试吗?你是否在位置更新位置管理器委托方法 –
是测试在两个真实设备上测试iPhone 5运行iOS 10.3.3和iPhone 6运行iOS 11.我有位置管理器委托函数didChangeAuthorization和didUpdateLocations日志。位置正在被调用(当在前台),并且当我在请求使用权限时请求更改授权,但并不总是使用权限。 –
看看这个答案https://stackoverflow.com/a/46339284/3024579 – Alok