Как получить заранее составленное SMS-сообщение для пользователя в iOS SDK - PullRequest
4 голосов
/ 17 января 2012

Я использовал пример кода на сайте Apple Dev, чтобы узнать, как устанавливать предварительно составленные электронные письма, но есть ли способ настроить предварительно составленные SMS-сообщения, аналогично?

Ответы [ 4 ]

7 голосов
/ 17 января 2012

Сначала вы должны добавить фреймворк MessageUI в ваш проект и импортировать библиотеку "MessageUI/MessageUI.h".Затем выполните протокол <MFMessageComposeViewControllerDelegate>.

Теперь для отправки SMS:

- (IBAction) sendSMS:(id)sender
{
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"The body of the SMS you want";
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
    [controller release];
}

Чтобы перехватить результат операции отправки:

- (void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    switch(result)
    {
        case MessageComposeResultCancelled: break; //handle cancelled event
        case MessageComposeResultFailed: break; //handle failed event
        case MessageComposeResultSent: break; //handle sent event
    }
    [self dismissModalViewControllerAnimated:YES];
}
2 голосов
/ 17 января 2012

Свойство body в MFMessageComposeViewController позволяет вам установить тело сообщения так же, как вы можете для электронной почты.

Ознакомьтесь с документацией: http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html

1 голос
/ 25 декабря 2012

PresentModalViewController теперь устарела в IOS 6. Поэтому я использовал

[self presentViewController:controller animated:YES completion:nil];

весь код выглядит следующим образом

-(IBAction)sendSMSButtonTouchupInside:(id)sender
{
MFMessageComposeViewController *controller =
        [[MFMessageComposeViewController alloc] init];
if([MFMessageComposeViewController canSendText])
  {
    controller.body = @"Whatever you want";
    controller.recipients = [NSArray arrayWithObjects:@"03136602888", nil];
    controller.messageComposeDelegate = self;
    [self presentViewController:controller animated:YES completion:nil];
  }
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller   didFinishWithResult:(MessageComposeResult)result
{
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MyApp" message:@"Unknown Error"
                                               delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
  switch (result)
  {
    case MessageComposeResultCancelled:
         NSLog(@"Cancelled");
         [alert show];
         break;
    case MessageComposeResultFailed:
         [alert show];
         break;
    case MessageComposeResultSent:
         break;
    default:
         break;
  }
  [self dismissViewControllerAnimated:YES completion:nil];
}
1 голос
/ 17 января 2012

См. Эту статью в Центре разработки Apple:

Отправка SMS-сообщения

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