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

标签 ios iphone

在 iOS 中,如何读取存储在 iPhone 中的所有者电子邮件地址?在我的应用程序中,我想让用户选择他希望将哪个电子邮件地址与自定义服务相关联。在Android上,我会让他选择他的GMail地址,但在iOS上,似乎没有获取apple id电子邮件的选项,对吗?那么有没有可能检索所有存储的电子邮件地址并让用户选择其中一个?我真的需要一个电子邮件地址。唯一 ID、设备 ID 或类似内容不适用于我想要实现的目标。

谢谢

最佳答案

为什么不显示地址簿让用户选择和电子邮件地址?

将 AddressBook 和 AddressBookUI 框架添加到您的项目中。 将它们导入您的 .h 并添加协议(protocol) ABPeoplePickerNavigationControllerDelegate。

然后调用地址簿:

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

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

// 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;
}

关于iOS:如何获取所有者的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409275/

相关文章:

ios - Storyboard和模拟器之间的 XCode 对齐/间距?

ios - 解析 html NSString

ios - NSNumberFormatter 正在四舍五入某些货币的货币金额

objective-c - Javascript 到 Obj-c 请求.. 将值返回给 Javascript

iphone - 从 Core Data 获取大数据后 for 循环的风险

iPhone - 更换壁纸?

iphone - 以编程方式修改从 Nib 初始化的 UITableViewCell?

iphone - 旋转拨号器,如iPhone中的iRetro拨号器动画

IOS 双击单元格导致 UITableView 中的项目不会滚动

ios - 无法将 Player 类型的值分配给 SKSpriteNode 类型