在iOS中,我该如何读取存储在iPhone中的所有者电子邮件地址?在我的应用程序中,我想让用户选择要与自定义服务相关联的电子邮件地址。在Android上,我会让他选择他的GMail地址,但在iOS上,似乎没有选项可以获取苹果ID电子邮件,对吗?那么是否有可能检索所有存储的电子邮件地址并让用户选择其中一个?我真的需要一个电子邮件地址。唯一的 ID、设备 ID 或类似的内容不适用于我想要实现的功能。
谢谢
为什么不展示地址簿并让用户选择电子邮件地址?
将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;
}
不可以获取电子邮件列表,我们使用的默认邮件应用程序只能让您检查用户是否可以发送电子邮件,它会检查至少一个邮件帐户是否已配置。