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

Pra*_*eep 1 iphone objective-c

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

请有人帮我解决这个问题

Bra*_*Guy 6

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

  if ([[NSClassFromString(@"MFMessageComposeViewController") canSendText]) {
    [self presentMessageComposeViewController];
  }  
Run Code Online (Sandbox Code Playgroud)

如果设备和操作系统支持它现在从您的应用程序中的视图控制器提供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];
}
Run Code Online (Sandbox Code Playgroud)

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

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

如果您需要使用自己的UI,则必须与您自己的服务器或可以为您发送短信的第三方服务进行通信.例如,使用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"];
Run Code Online (Sandbox Code Playgroud)