在iOS中,如何读取存储在iPhone中的所有者电子邮件地址?在我的应用程序中,我想让用户选择他想要与自定义服务关联的电子邮件地址。在Android上,我会让他选择自己的GMail地址,但在iOS上,似乎没有办法获取苹果id的电子邮件地址,对吧?那么,有没有可能检索所有存储的电子邮件地址,并让用户选择其中之一?我真的需要一个电子邮件地址。一个唯一的id,设备id或类似的东西将不会与我想要实现的东西一起工作。
谢谢
发布于 2012-02-23 16:55:21
为什么不提供地址簿,让用户选择和电子邮件地址?
将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;
}发布于 2012-02-23 16:39:31
根据苹果公司的指导方针,你必须询问用户。此外,苹果也不太热衷于强制提供电子邮件等私人信息。
您可以遍历地址簿并在联系人中查找所有者标签,但请注意,在即将发布的iOS版本中,苹果将通知用户一个应用程序正在访问地址簿,因此用户可能不允许您的应用程序访问地址簿。
发布于 2012-02-23 16:50:33
不,你不能得到邮件列表,我们用来通过我们的应用程序发送邮件的默认邮件应用程序只能让你检查用户是否可以发送电子邮件,这是它的检查是否已经配置了至少一个邮件帐户
https://stackoverflow.com/questions/9409275
复制相似问题