0

在我的 iPhone 应用程序中,我刚刚实现了应用内 SMS 功能。短信功能运行良好。但是在打开 MFMessageComposeViewController 后,如果用户想取消发送短信,他们没有选择。剩下的唯一选择是发送一条短信,然后只返回上一个视图。导航栏上应该有一个取消按钮,就像在电子邮件编辑器中一样。下面是我编写的具有应用内短信功能的代码行:

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

有什么我想念的吗?

提前致谢, 电脑

4

1 回答 1

6

尝试这个....

在 .h 文件中

#import <MessageUI/MFMessageComposeViewController.h>

@interface TestViewController : UIViewController <MFMessageComposeViewControllerDelegate>

然后是 Button Click 方法

-(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 回答