您如何设置一个应用程序,在启动邮件编辑器之前请求访问联系人的权限?我知道应用程序会这样做是最近的事。
问问题
1557 次
3 回答
1
由于 Apple 提供了MFMailComposeViewController
它已经可以访问内置的用户联系人,因此无需授予访问权限。如果您想在其他地方使用用户联系人,您应该查看地址簿编程指南
于 2012-06-22T20:26:58.273 回答
0
这是一个简单的例子,因为我不知道你打算做什么。你有一个 UIButton,上面写着“访问联系人”。当他们单击按钮时,您将让按钮运行一个方法……我们称之为 generatePopover。那么 generatePopover 应该创建一个 UIPopOverController 并在其上声明一个请求访问联系人的权限。这个视图上有两个按钮,接受和拒绝。Decline 什么都不做,accept 允许您继续并拉起邮件控制器。
这是弹出控制器页面的链接:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html
于 2012-06-22T20:37:43.153 回答
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;
我只是在没有检查或查找任何内容的情况下输入了此内容,因此某处可能有错误。无论如何,希望这会有所帮助!
于 2012-06-23T00:21:57.053 回答