请求访问联系人的权限

时间:2012-06-22 20:21:10

标签: iphone ios xcode private privacy

如何在启动Mail Composer之前设置一个要求获得访问联系人权限的应用?我知道应用程序会这样做是相当近期的。

3 个答案:

答案 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;

我只是在没有检查或查找任何内容的情况下输入此内容,因此某处可能存在错误。 无论如何,希望这有帮助!

相关问题