Подтвердить что ты не робот

IOS: Как получить адрес электронной почты владельцев?

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

Спасибо

4b9b3361

Ответ 1

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

Добавьте в проект проекты 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;
}

Ответ 2

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

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

Ответ 3

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