繁体   English   中英

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

[英]iOS: How to get owners email address?

在iOS中,我如何阅读所有者存储在iPhone中的电子邮件地址? 在我的应用程序中,我想让用户选择他想与自定义服务关联的电子邮件地址。 在Android上,我让他选择他的GMail地址,但是在iOS上,似乎没有选择获取Apple ID电子邮件的方法,对吗? 那么,是否有可能检索所有存储的电子邮件地址并让用户选择其中之一? 我真的需要一个电子邮件地址。 唯一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;
}

根据Apple准则,您必须询问用户。 同样,苹果也不是很想将私人信息(例如电子邮件)强制性化。

您可以循环浏览通讯录并在联系人中查找所有者标签,但是请注意,Apple会在即将发布的iOS版本中通知用户某个应用正在访问该通讯录,因此用户可能不允许您的应用访问该地址书。

不会,您无法获取电子邮件列表,我们用于通过我们的应用程序发送电子邮件的默认邮件应用程序只能让您检查用户是否可以发送电子邮件,无论是否已检查,最后一个邮件帐户均已配置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM