iOS: Как получить адрес электронной почты владельцев? - PullRequest
13 голосов
/ 23 февраля 2012

В iOS, как я могу прочитать адреса электронной почты владельцев, которые хранятся в iPhone?В моем приложении я хотел бы позволить пользователю выбирать, какой адрес электронной почты он хотел бы связать с пользовательским сервисом.На Android я бы позволил ему выбрать свой адрес GMail, но на iOS, похоже, нет никакой возможности получить электронную почту Apple ID, верно?Так есть ли возможность извлечь все сохраненные адреса электронной почты и позволить пользователю выбрать один из них?Мне действительно нужен адрес электронной почты.Уникальный идентификатор, идентификатор устройства или подобное не будет работать с тем, чего я хотел бы достичь.

Спасибо

Ответы [ 3 ]

10 голосов
/ 23 февраля 2012

Почему бы не представить адресную книгу и позволить пользователю выбрать и адрес электронной почты?

Добавьте рамки 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 голос
/ 23 февраля 2012

нет, вы не можете получить список электронных писем, почтовое приложение по умолчанию, которое мы используем для отправки электронных писем через наше приложение, позволяет только проверять, может ли пользователь отправлять электронную почту или нет, что является его проверкой, или не настроена одна учетная запись электронной почты или нет

1 голос
/ 23 февраля 2012

В соответствии с рекомендациями Apple, вам придется спросить пользователя. Также Apple не очень-то заинтересована в том, чтобы сделать личную информацию, например, электронную почту, обязательной.

Вы можете перебирать адресную книгу и искать тег владельца в контакте, но учтите, что Apple в следующем выпуске iOS уведомит пользователя о том, что приложение обращается к адресной книге, поэтому пользователь может не разрешить вашему приложению получить доступ к адресной книге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...