当我的应用程序启动时,它会请求使用定位服务。
如果用户选择“不允许”,我会再次提示他们,让他们知道需要位置服务才能获得最佳体验,他们可以在设置应用程序中启用。
从这一点来看,如果我在设置应用程序中手动启用,我仍然无法获得获取当前位置的主页。
如何从设置应用程序中检测到已启用定位服务?
是否有需要从AppDelegate再次强制执行的方法?
发布于 2014-11-09 01:39:01
您可以使用返回CLAuthorizationStatus枚举成员的CLLocationManager.AuthorizationStatus来判断您的应用程序是否启用了location。如果定位被完全禁用,你的应用程序将不会被授权,所以你知道你需要知道的一切。
let authorization = CLLocationManager.authorizationStatus()
if authorization == .AuthorizedWhenInUse || authorization == .Authorized {
...
}
如果您使用CLLocationManager请求授权,但被用户拒绝,则不能再次打开该窗口。
从UX的角度来看,也要小心nags。清晰地传达你的应用程序从使用位置中受益,但要尽量避免在这方面威吓用户。
发布于 2014-11-16 21:09:57
另请参阅how to determine when settings change on ios,让你的应用程序在用户(希望)启用它后立即重试位置访问。
https://stackoverflow.com/questions/26823224
复制相似问题