【发布时间】:2012-10-21 11:10:37
【问题描述】:
有没有办法检查用户是否允许我的应用使用他/她的位置坐标? 我想在他/她按下按钮提交一些信息之前检查一下,只有在用户允许的情况下我才会激活这个按钮。
我的应用使用 iOS 6。
谢谢
【问题讨论】:
标签: ios ios6 user-permissions userlocation
有没有办法检查用户是否允许我的应用使用他/她的位置坐标? 我想在他/她按下按钮提交一些信息之前检查一下,只有在用户允许的情况下我才会激活这个按钮。
我的应用使用 iOS 6。
谢谢
【问题讨论】:
标签: ios ios6 user-permissions userlocation
在CLLocationManager 实例的委托中,实现
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
方法。如果调用此方法时将其error 参数设置为kCLErrorDenied,则用户尚未启用使用定位服务。您还可以实现
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
方法 - 当此回调方法的status 参数不是kCLAuthorizationStatusDenied 时,则用户已启用您的应用使用他的位置。
【讨论】:
我为 iOS 上的易用性权限创建了一个组件。
在我的 Github 中可用:
使用block的一个例子:
/*
User can be choose two enum type for request the location authorization:
- AuthorizeRequestTypeAlwaysAuthorization
- AuthorizeRequestTypeWhenInUseAuthorization
*/
[[IOSCheckPermissions globalInstance] checkPermissionAccessForLocation:self.locationManager
authorizeRequestType:AuthorizeRequestTypeWhenInUseAuthorization
successBlock:^{
// SUCCESS ...
} failureBlock:^{
// PERMISSION DENIED ...
}];
【讨论】: