Я не совсем уверен, что вы пытаетесь сделать, но IOS предлагает несколько способов отображения контроллера вида электронное сообщения, а также методы для доступа к контактам пользователя, сохраненные на его/iDevice.
Чтобы отобразить вид почты композицию, сделать слабую ссылку на MessageUI.framework
в проекте (слабое звено является предпочтительным, так как MessageUI.framework
не доступен на очень старых версиях IOS), а затем сделать что-то вроде этого:
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil) {
// MessageUI Library is available. Presenting modal mail composer view.
MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
mailViewController.mailComposeDelegate = self;
[mailViewController setSubject:@"This is the subject of the email"];
[mailViewController setMessageBody:@"This is the body of the email." isHTML:NO];
[self presentModalViewController:mailViewController animated:YES];
[mailViewController release];
} else {
// MessageUI Library not available. Opening mail.app using a URL scheme.
// Note that this URL scheme only works on iOS3 and below, and seems to only accept a
// limited number of characters. For this reason, we only attach the URL.
NSString *mailBody = @"This is the body of the email."
NSString *mailSchemeURL = [NSString stringWithFormat:@"mailto:?body=%@", mailBody];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[mailSchemeURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}
Если вы хотите получить доступ к контактам на iDevice, ссылку AddressBook.framework
на ваш проект. Вы можете получить доступ к значениям на устройстве, следуя инструкциям в Apple's programming guide. Например, вы можете получить массив всех контактов, как так:
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *contacts = (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
Я ожидаю, что вы можете создать экземпляр вида почты композицию с определенным контактом с использованием комбинации выше. Надеюсь это поможет!
Спасибо, но MFMailComposeViewController я не могу выбрать пользователя, который отправляет электронное письмо ... В моих настройках у меня есть одна учетная запись hotmail и одна учетная запись gmail, и я хочу отправить электронное письмо только с одним счетчиком, и я хочу выбрать этот счетчик пользователей. –
@JaviLesPaul - просто коснитесь поля from, это откроет поля cc и bcc, а также изменит их из поля - другой кран позволяет вам выбирать из своих учетных записей. Вы не сможете получить доступ к настройкам почты из своего приложения, это вне изолированной программы. – jrturton
А, я вижу. Чтобы уточнить, вы хотите указать учетную запись электронной почты, которая используется для * отправки * электронной почты. Насколько мне известно, учетная запись, используемая для отправки электронной почты, всегда будет такой, как указано в «Настройки»> «Почта», «Контакты», «Календари»> «Учет по умолчанию». Возможно, я ошибаюсь, но я также задаюсь вопросом, было бы хорошей идеей игнорировать предпочтения пользователя при отправке электронной почты. В любом случае, извините, я не мог помочь! – modocache