iOS:如何获取所有者的电子邮件地址?

时间:2012-02-23 08:13:19

标签: ios iphone

在iOS中,如何阅读存储在iPhone中的所有者电子邮件地址?在我的应用中,我想让用户选择他想要与自定义服务关联的电子邮件地址。在Android上,我会让他选择他的GMail地址,但在iOS上,似乎没有选择获取apple id电子邮件,对吧?那么是否有可能检索所有存储的电子邮件地址并让用户选择其中一个?我真的需要一个电子邮件地址。唯一的ID,设备ID或类似内容将无法满足我的目标。

由于

3 个答案:

答案 0 :(得分:10)

为什么不出示通讯录并让用户选择和发送电子邮件地址?

将AddressBook和AddressBookUI框架添加到项目中。 在.h中导入它们并添加协议ABPeoplePickerNavigationControllerDelegate。

然后拨打地址簿:

- (void) chooseContact:(id)sender {
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
    picker.peoplePickerDelegate = self;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}

您实现了几个必需的委托方法来获取电子邮件地址并关闭通讯簿:

// call when the user cancel
 - (void) peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
    [self dismissModalViewControllerAnimated:YES];
}

让用户输入联系方式:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
    return YES;
}

然后使用所选的电子邮件地址执行您的操作:

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
    if (property == kABPersonEmailProperty) {
         //assumed you have a property email in your class
         self.email = (NSString *)ABRecordCopyValue(person, kABPersonEmailProperty);
         [self dismissModalViewControllerAnimated:YES];
    }
    return NO;
}

答案 1 :(得分:1)

根据Apple指南,您必须询问用户。苹果也不太热衷于制作私人信息,如电子邮件,强制性。

您可以遍历地址簿并在联系人中查找所有者标记,但请注意Apple将在即将发布的iOS版本中通知用户应用正在访问地址簿,因此用户可能不会允许您的应用访问地址簿。

答案 2 :(得分:1)

nope你无法获得电子邮件列表,我们用来通过我们的应用程序发送电子邮件的默认邮件应用程序只让你检查用户是否可以发送电子邮件,这是否是一个邮件帐户已配置<或者