2010-12-16 5 views
3

iPhoneのコードからSMSを送信する方法がないとわかっているからです。iPhoneのMFMessageComposeViewControllerを使用してSMSの実際の身体と受信者を検出するにはどうすればよいですか?

代わりに、私は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を送信する前に、受信者やメッセージを変更することは可能です。

私はしかし、controller.bodyとcontroller.recipientsは、SMSアプリケーションで行った変更を表示しdoesntの。デリゲートメソッド

- (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]; 

} 

ボディと受信者をチェックしてみましたドキュメントでは、次のようなことを確認してこれを確認しています。

本文:メッセージの最初の内容。
受信者:メッセージの最初の受信者を含む文字列の配列。

使用されたACTUALメッセージと受信者を確認する方法はありますか?

ありがとうございます!

+0

もちろん、本体/受信者を変更不可能にすることが可能であれば問題ありません。しかし、私はこれが可能であるのか疑問ですか? – wanner

答えて

3

MailComposerの動作もMessageComposerと同じです。コンテンツを初期化して提示することはできますが、送信後またはコントローラを提示した後は値にアクセスできません。 - 取得メソッドがありません