Как программно показать страницу настройки почты на iPhone? - PullRequest
6 голосов
/ 16 мая 2011

Как мне показать страницу настройки почты программно?

В своем приложении я предложил пользователю вариант обратной связи. При нажатии на кнопку обратной связи я проверяю, есть ли на устройстве доступная учетная запись почты. Это делается с помощью следующей проверки:

if ([MFMailComposeViewController canSendMail])
{
    // Actions to send mail
}
else
{
    //Actions to show an error message by UIAlertView
}

Предупреждающее сообщение будет выглядеть так:

No mail account alert

Если пользователь нажимает кнопку OK в этом UIAlertView, я хочу перейти на страницу настройки почты, доступную в меню настроек. То есть я хочу показать следующую страницу:

mail setup page

Возможно ли сделать эту навигацию программно?

Ответы [ 6 ]

6 голосов
/ 04 апреля 2012

Когда пользователь нажимает кнопку «ОК» для просмотра предупреждений, используйте приведенный ниже код.

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @"mailto:test@test.com"]];

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

Надеется, что это поможет:)

2 голосов
/ 16 мая 2011

Вы должны использовать класс MFMailComposeViewController и протокол MFMailComposeViewControllerDelegate,

PeyloW предоставляет следующий код для этого в своем ответе здесь :

Сначала отправьте сообщение:

MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO]; 
[self presentModalViewController:controller animated:YES];
[controller release];

Затем пользователь выполняет работу, и вы вовремя получаете ответный вызов делегата:

- (void)mailComposeController:(MFMailComposeViewController*)controller  
          didFinishWithResult:(MFMailComposeResult)result 
                        error:(NSError*)error;
{
  if (result == MFMailComposeResultSent) {
    NSLog(@"It's away!");
  }
  [self dismissModalViewControllerAnimated:YES];
}
0 голосов
/ 18 декабря 2012

- (IBAction) showPicker: (id) отправитель {

    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)

    {

        // We must always check whether the current device is configured for sending emails

        if ([mailClass canSendMail])
        {

            [self displayComposerSheet];

        }
        else

        {
            [self launchMailAppOnDevice];
        }
    }
    else
    {
        //mail not config
    }
}
0 голосов
/ 17 мая 2011

Не может быть сделано.Даже если есть интерфейс для запуска приложения «Настройки» (о котором я не знаю, если таковой имеется), невозможно указать, к какому экрану этого приложения перейти.Это не похоже на веб-сайт, где каждая страница имеет URL.

0 голосов
/ 16 мая 2011

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

0 голосов
/ 16 мая 2011

Добавьте структуру messageUI. в .h файле

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
 add <MFMailComposeViewControllerDelegate> like
@interface ManageRequestViewController : UIViewController<MFMailComposeViewControllerDelegate>

in .m file

if([MFMailComposeViewController canSendMail]){

            MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init];
            mail.mailComposeDelegate=self;
            [mail setSubject:@"your subject"];          
            [mail setMessageBody:@"mail!" isHTML:NO];
            [self presentModalViewController:mail animated:YES];
            [mail release];         
        }

- (void)mailComposeController:(MFMailComposeViewController*)mailController didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
        [self dismissModalViewControllerAnimated:YES];

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