如何在启动Mail Composer之前设置一个要求获得访问联系人权限的应用?我知道应用程序会这样做是相当近期的。
答案 0 :(得分:1)
由于Apple提供的MFMailComposeViewController
已经可以访问内置的用户联系人,因此无需授予访问权限。如果您希望在其他地方使用用户联系人,请查看Address Book Programming Guide
答案 1 :(得分:0)
这是一个简单的例子,因为我不知道你打算做什么。您有一个读取“访问联系人”的UIButton。当他们点击按钮时,你有按钮运行方法...我们称之为generatePopover。那么generatePopover应该创建一个UIPopOverController,上面有一个声明,要求获得访问联系人的权限。这个视图上有两个按钮,接受和拒绝。拒绝不执行任何操作,其中accept允许您继续并启动邮件控制器。
以下是弹出控制器页面的链接:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html
答案 2 :(得分:0)
你可以这样做:
//Header (.h)
@interface yourClass : superClass <UIAlertViewDelegate>
@property (nonatomic) BOOL alertShown;
@property (nonatomic) BOOL permissionGranted;
//Implementation (.m)
@synthesize alertShown, permissionGranted;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if(buttonIndex == 1){
self.permissionGranted = YES;
}
/*If you weren't sure what index the "Yes" button was at, you could do this instead:
if(buttonIndex == alertView.firstOtherButtonIndex){
self.permissionGranted = YES;
}
Or this:
if([buttonTitleAtIndex:buttonIndex isEqualToString:@"Yes"]){
self.permissionGranted = YES;
}*/
}
-(void)composeMail{
if(!self.alertShown){
UIAlertView *permissionsAlert = [[UIAlertView alloc] initWithTitle:@"Permission"
message:@"Permission to access contacts?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles: @"Yes"];
[permissionsAlert show];
}
if(self.alertShown && self.permissionGranted){
//access mail/contacts
}
}
//viewDidLoad
self.alertShown = NO;
self.permissionGranted = NO;
我只是在没有检查或查找任何内容的情况下输入此内容,因此某处可能存在错误。 无论如何,希望这有帮助!