Как определить фактическое тело и получателей SMS с помощью MFMessageComposeViewController для iPhone? - PullRequest
3 голосов
/ 16 декабря 2010

Из того, что я понимаю, нет возможности отправить СМС с кода на iPhone.

Вместо этого я использую MFMessageComposeViewController, чтобы показать приложение SMS. Я устанавливаю тело и получателей раньше:

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
controller.body = @"message";
controller.recipients = [NSArray arrayWithObject:@"phonenumber"];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];

Я хочу убедиться, что сообщение и получатель остаются без изменений и остаются такими же, как я установил из кода. Однако пользователь может изменить получателей и / или сообщение перед отправкой SMS.

Я попытался проверить тело и получателей в методе делегата

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
 NSLog(@"Message: %@", controller.body);

 NSLog(@"Recipients:");
 for (NSString *recipient in controller.recipients) {
  NSLog(recipient);
 }
 switch (result) {
  case MessageComposeResultCancelled:
   NSLog(@"Result: canceled");
   break;
  case MessageComposeResultSent:
   NSLog(@"Result: sent");
   // Check that the correct message has been sent
   if([controller.body isEqualToString:correctMessage]) {
    BOOL correctRecipient = NO;
    for (NSString *recipient in controller.recipients) {
     if([recipient isEqualToString:correctRecipient]) {
      correctRecipient = YES;
     }
    }

    if(correctRecipient) {
     NSLog(@"Correct message sent to correct recipient!");
    } else {
     NSLog(@"Message or recipient was wrong");
    }
   }

   break;
  case MessageComposeResultFailed:
   NSLog(@"Result: failed");
   break;
  default:
   NSLog(@"Result: not sent");
   break;
 }

 [self dismissModalViewControllerAnimated:YES];

}

Однако, controller.body и controller.recipients не показывают изменения, внесенные в приложение SMS. Документация подтверждает это, говоря, что

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

Есть ли способ проверить ФАКТИЧЕСКОЕ сообщение и получателей, которые были использованы?

Заранее спасибо!

1 Ответ

3 голосов
/ 16 декабря 2010

Поведение MailComposer также похоже на MessageComposer. Мы можем инициализировать содержимое и представить, но не можем получить доступ к каким-либо значениям после отправки или после представления контроллера. - Нет доступных методов получения

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