简体   繁体   中英

How to have a precomposed SMS message for the user in iOS SDK

我使用Apple Dev网站上的示例代码来学习如何设置预先编写的电子邮件,但有没有办法设置预先组合的SMS消息,类似的?

First you have to add the framework MessageUI to your project and import the library "MessageUI/MessageUI.h" . Then conform to the protocol <MFMessageComposeViewControllerDelegate> .

Now to send an SMS:

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

To catch the result of the sending operation:

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

The body property on MFMessageComposeViewController allows you to set the message body just like you can for an email.

Check out the documentation: http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html

PresentModalViewController is now deprecated in IOS 6. So i used

[self presentViewController:controller animated:YES completion:nil];

whole code is as following

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

See this article on Apple's Dev Center:

Sending an SMS Message

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM