我是iphone开发的新手,我想在我的应用程序中创建SMS应用程序。我使用“messageUI.framework”创建了邮件应用程序。是否有任何创建SMS应用程序的框架。我不知道它,所以告诉我接近这个任务的方式。请指导我完成我的任务。请帮帮我。谢谢。
答案 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将通过iMessage应用程序发送消息。但是如果你想通过iPhone的网络生涯发送短信,那么下面的代码将帮助你
NSString *phoneToCall = @"sms:";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];