MFMessageComposeViewController程序内发送短信息的实例

 
 
 
 
加载MFMessageComposeViewController

- (void)showMessageView

{

    if( [MFMessageComposeViewController canSendText] )

    {

        MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc]init]; //autorelease];

        controller.recipients = [NSArray arrayWithObject:@"15988888888"];

        controller.body = @"请直接将此条认证短信发送给我们,以完成手机安全绑定。(9qzkd27953ma)";

        controller.messageComposeDelegate = self;

        

        [self presentModalViewController:controller animated:YES];

//        [[[[controller viewControllers] lastObject] navigationItem] setTitle:@"SomethingElse"];//修改短信界面标题

        [controller release];

    }

    else

    {

        UIAlertView *alert = [[UIAlertView allocinitWithTitle:@"提示信息" 

                                                        message:@"该设备不支持短信功能" 

                                                       delegate:self 

                                              cancelButtonTitle:nil

                                              otherButtonTitles:@"确定"nil];

        [alert show];

        [alert release];

    }

}

 

 

MFMessageComposeViewControllerDelegate

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

{

        [controller dismissModalViewControllerAnimated:NO];//关键的一句   不能为YES

        switch ( result ) {

           case MessageComposeResultCancelled:

                {

                       //click cancel button

                }

                break;

           case MessageComposeResultFailed:// send failed

            

                 break;

            case MessageComposeResultSent:

            {

                

                  // do something

            }

           break;

     default:

          break;

     }

 

}

我们知道可以使用这样的代码在iphone中发送短信:

[[UIApplication sharedApplication] openURL:@"sms:12345678"]; 

但这样的方式无法指定短信内容。那么我们可以使用MessageUI框架。

 

首先在程序中导入MessageUI.framework。import头文件:#import "DeviceDetection.h"

 

然后在代码中使用下面的语句来调用短信发送窗口,并指定号码和短信内容:

 

MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init]autorelease];

controller.body = @"zc";

controller.recipients = [NSArray arrayWithObjects:@"106295598"nil];

controller.messageComposeDelegate = self;

[self presentModalViewController:controller animated:YES];

 

同时实现协议MFMessageComposeViewControllerDelegate,

在协议方法messageComposeViewController:didFinishWithResult:

中解散窗口:

switch (result) {

    case MessageComposeResultCancelled:

          NSLog(@"Cancelled");

          break;

    case MessageComposeResultFailed:

          [self alert:@"发送短信错误!"];

          break;

     case MessageComposeResultSent:

          break;

      default:

         break;

}

[self dismissModalViewControllerAnimated:YES];

posted @ 2012-08-03 17:24  奔放小青年  阅读(1202)  评论(0编辑  收藏  举报