如何在iphone中通过手机号码发送短信

时间:2010-09-01 10:50:39

标签: iphone objective-c

我在iphone中创建了一个音乐问候应用程序。我希望当用户在文本字段中输入他的手机号码并点击发送按钮时,应该获取另一个视图中的数据并将短信发送到用户的手机号码。

请有人帮我解决这个问题

2 个答案:

答案 0 :(得分:6)

Apple仅支持通过他们提供的UI发送短信。为此,首先检查您是否可以发送短信。如果您要部署到不支持此功能的旧版iOS,请使用NSClassFromString检测MFMessageComposeViewController的存在,并检查如果MFMessageComposeViewController确实存在,则canSendText返回true。如果用户的设备没有短信功能,它将返回false:

  if ([[NSClassFromString(@"MFMessageComposeViewController") canSendText]) {
    [self presentMessageComposeViewController];
  }  

如果设备和操作系统现在支持它,则会在应用中的视图控制器中显示MFMessageComposeViewController。此方法应在管理当前视图的UIViewController的子类中实现:

-(void) presentMessageComposeViewController {
    id smsViewController = [[NSClassFromString(@"MFMessageComposeViewController") alloc] init];
        [smsViewController setTitle:NSLocalizedString(@"Your Title",nil)];
    [smsViewController setBody:NSLocalizedString(@"Your Message. urls work too www.example.com",nil)];
    [smsViewController setMessageComposeDelegate: (id)self];
    [self presentModalViewController:smsViewController animated:YES];
    [smsViewController release];
}

您还需要实现委托方法来关闭MFMessageComposeViewController:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
    [self dismissModalViewControllerAnimated:YES];
}

如果您需要使用自己的用户界面,则必须与您自己的服务器或可以为您发送短信的第三方服务进行通信。例如,使用Twilio API(和ASIHTTPRequest项目):

NSString *urlString = [NSString stringWithFormat:
@"http://api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages,kYourTwillioSID];
NSURL = [NSURL urlWithString:urlString];
SIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:yourPhoneNumber forKey:@"TO"];
[request setPostValue:@yourBody forKey:@"Body"];
[request setFile:kYourOutgoingTwilioNumber forKey:@"From"];

答案 1 :(得分:0)

此链接对您有用,即使示例代码也是他们的

这仅适用于ios4

http://developer.apple.com/iphone/library/navigation/index.html#section=Frameworks&topic=Message%20UI