【发布时间】:2014-06-21 03:05:45
【问题描述】:
我希望我的应用只请求用户访问联系人通讯录的权限,直到用户访问我应用中的正确功能。我真的不想在应用加载时请求权限。
因此我使用了以下代码:
- (IBAction)importClientsButtonPressed:(id)sender {
// request access to Contacts address book
CFErrorRef addyError = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &addyError);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef addyError) {
});
}
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
_importContactsActionSheet = [[UIActionSheet alloc] initWithTitle:@"Import Client from Contacts"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Primary Contact", @"Secondary Contact", nil];
_importContactsActionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[_importContactsActionSheet showFromRect:self.importClientsButton.frame inView:self.importClientsButton.superview animated:YES];
} else {
// the user has previously denied access - send alert to user to allow access in Settings app
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Privacy Settings"
message:@"This app does not have access to your contacts. You can enable access in Privacy Settings."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}
但是,权限对话框不会停止应用程序并等待响应...请求后面的代码会继续运行。结果,我收到一堆乱七八糟的消息。
有没有办法让整个应用程序停止,直到权限请求对话框返回响应?
谢谢!
【问题讨论】:
标签: ios permissions dialog authorization