当我的应用程序启动时,它请求使用位置服务。位置本地设置应用程序启用的服务
如果用户选择'不允许',我会再次提示他们知道定位服务是最佳体验所必需的,他们可以在设置应用程序中启用。
如果用户不允许并且仍然创建一个帐户,那么在没有位置功能部件的情况下,主屏幕将无法正常工作。
从这一点,如果我手动启用设置应用程序,我仍然没有得到主页来获取当前位置。
如何检测位置服务是否已从设置应用程序启用?
是否有我需要从AppDelegate再次强制执行的方法?
当我的应用程序启动时,它请求使用位置服务。位置本地设置应用程序启用的服务
如果用户选择'不允许',我会再次提示他们知道定位服务是最佳体验所必需的,他们可以在设置应用程序中启用。
如果用户不允许并且仍然创建一个帐户,那么在没有位置功能部件的情况下,主屏幕将无法正常工作。
从这一点,如果我手动启用设置应用程序,我仍然没有得到主页来获取当前位置。
如何检测位置服务是否已从设置应用程序启用?
是否有我需要从AppDelegate再次强制执行的方法?
您可以使用CLLocationManager.AuthorizationStatus判断您的应用程序是否已启用位置,该位置将返回CLAuthorizationStatus枚举的成员。如果位置完全禁用,您的应用将无法获得授权,因此您知道您需要知道的一切。
let authorization = CLLocationManager.authorizationStatus()
if authorization == .AuthorizedWhenInUse || authorization == .Authorized {
...
}
如果您在使用CLLocationManager请求授权和用户拒绝它,你可以不会导致再次出现的窗口。
从用户体验的角度来看,还要小心唠叨。清楚地表明您的应用可以从使用位置获益,但可以尽量避免对用户造成威胁。
另请参阅how to determine when settings change on ios让用户(希望)启用后,您的应用可以重试位置权限。