Iphone 如何在iOS SDK中为用户预合成SMS消息

Iphone 如何在iOS SDK中为用户预合成SMS消息,iphone,objective-c,sms,Iphone,Objective C,Sms,我使用Apple Dev网站上的示例代码来学习如何设置预合成电子邮件,但是否有一种方法可以设置预合成的SMS消息,类似地?MFMessageComposeViewController上的body属性允许您设置消息正文,就像设置电子邮件一样 查看文档:请参阅苹果开发中心的这篇文章: 首先,您必须将框架MessageUI添加到项目中,并导入库“MessageUI/MessageUI.h”。然后遵守协议 现在发送短信: - (IBAction) sendSMS:(id)sender { MFM

我使用Apple Dev网站上的示例代码来学习如何设置预合成电子邮件,但是否有一种方法可以设置预合成的SMS消息,类似地?

MFMessageComposeViewController上的body属性允许您设置消息正文,就像设置电子邮件一样


查看文档:

请参阅苹果开发中心的这篇文章:


首先,您必须将框架
MessageUI
添加到项目中,并导入库
“MessageUI/MessageUI.h”
。然后遵守协议

现在发送短信:

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

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