0

私のiPhoneアプリケーションでは、アプリ内SMS機能を実装しました。SMS機能は正常に機能しています。ただし、MFMessageComposeViewControllerを開いた後、ユーザーがSMSの送信をキャンセルしたい場合は、オプションがありません。残っている唯一のオプションは、SMSを送信してから、前のビューに戻ることだけです。メールコンポーザーと同じように、ナビゲーションバーにキャンセルボタンがあるはずです。以下は、アプリ内SMS機能を使用するために作成したコード行です。

-(void) smsComposer{
     MFMessageComposeViewController *_smsCompose = [[MFMessageComposeViewController alloc] init];
     if ([MFMessageComposeViewController canSendText]) {
         _smsCompose.body = @"SMS BODY";
         _smsCompose.messageComposeDelegate = self;
         [self presentModalViewController:_smsCompose animated:YES];
    }
}

足りないものはありますか?

よろしくお願いします、PC

4

1 に答える 1

6

これを試して....

.hファイル内

#import <MessageUI/MFMessageComposeViewController.h>

@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate>

そしてボタンクリック方式

-(void)buttonPressed:(UIButton *)button
{
[self sendSMS:@"Body of SMS..." recipientList:[NSArray arrayWithObjects:@"+1-111-222-3333", @"111-333-4444", nil]];
}

MFMessageComposeViewControllerを使用して、SMSコンテンツと、SMSダイアログでのユーザー操作を処理するための別のメソッドを作成します。

-(void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
    {
      MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
      controller.body = bodyOfMessage;    
      controller.recipients = recipients;
      controller.messageComposeDelegate = self;
      [self presentModalViewController:controller animated:YES];
    }    
 }

 -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
      [self dismissModalViewControllerAnimated:YES];

      if (result == MessageComposeResultCancelled)
        NSLog(@"Message cancelled")
      else if (result == MessageComposeResultSent)
        NSLog(@"Message sent")  
      else 
        NSLog(@"Message failed")  
    }

また、覚えておいてください。シミュレーター内からSMSメッセージを送信することはできません。デバイスでテストします。

于 2012-09-18T06:07:26.617 に答える