如何在iPhone中创建SMS应用程序

时间:2010-02-12 11:59:44

标签: iphone objective-c sms

我是iphone开发的新手,我想在我的应用程序中创建SMS应用程序。我使用“messageUI.framework”创建了邮件应用程序。是否有任何创建SMS应用程序的框架。我不知道它,所以告诉我接近这个任务的方式。请指导我完成我的任务。请帮帮我。谢谢。

4 个答案:

答案 0 :(得分:2)

不幸的是,没有像MFMailComposeViewController那样发送短信的内置视图控制器用于发送电子邮件。

从iOS 4.0开始,您可以使用MFMessageComposeViewController,它与仅限电子邮件的MFMailComposeViewController相对应。这使您可以布局并发送短信。

此外,您可以使用SMS URL方案,如this question中所述。但是,您似乎以这种方式cannot prepopulate the body of an SMS message

答案 1 :(得分:2)

您可以使用MFMessageComposeViewController类as documented by Apple

为此,首先将MessageUI.framework添加到您的项目中。

//在.h文件中进行以下更改

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMessageComposeViewController.h>

@interface YourViewController: UIViewController <MFMessageComposeViewControllerDelegate>

//然后在.m文件中执行以下操作。

- (void)viewDidLoad {
    [super viewDidLoad];

SMSLabel = [[UILabel alloc] initWithFrame:CGRectMake(30.0, 340.0, 260.0, 30.0)];
    SMSLabel .frame = CGRectMake(30.0, 340.0, 260.0, 30.0);
    SMSLabel .adjustsFontSizeToFitWidth = YES;
    SMSLabel .hidden = YES;
    SMSLabel .text = @"";
    SMSLabel .userInteractionEnabled = NO;
    SMSLabel.alpha=0.0;
    [self.view addSubview:SMSLabel ];  


}

-(void)ComposerSheet 
{
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.messageComposeDelegate = self;

    picker.recipients = [NSArray arrayWithObject:@"1234567"];  
    picker.body = @"iPhone OS4";

    [self presentModalViewController:picker animated:YES];
    [picker release];

}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
    SMSLabel.alpha=1.0;

    switch (result)
    {
        case MessageComposeResultCancelled:
            SMSLabel .text = @"Result: canceled";
            NSLog(@"Result: canceled");
            break;
        case MessageComposeResultSent:
            SMSLabel .text = @"Result: sent";
            NSLog(@"Result: sent");
            break;
        case MessageComposeResultFailed:
            SMSLabel .text = @"Result: failed";
            NSLog(@"Result: failed");
            break;
        default:
            SMSLabel .text = @"Result: not sent";
            NSLog(@"Result: not sent");
            break;
    }

    [self dismissModalViewControllerAnimated:YES];

}

答案 2 :(得分:1)

发送消息有点简单 - 您通常可以发送电子邮件到特殊格式的号码,如555.555.5555@verizon.net(仅限示例,不确定实际格式),它将发送到设备。没有一种简单的方法可以在您的应用中本地接收短信。

但是,您可以尝试使用许多free sms apis中的一个,例如ZeepMobile

答案 3 :(得分:0)

MFMessageComposeViewController将通过iMe​​ssage应用程序发送消息。但是如果你想通过iPhone的网络生涯发送短信,那么下面的代码将帮助你

    NSString *phoneToCall = @"sms:";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];