在iphone中以编程方式发送短信

时间:2011-02-01 05:23:10

标签: iphone ios sms messageui

如何以编程方式将短信发送到iPhone中联系人列表中选择的特定号码?

2 个答案:

答案 0 :(得分:4)

MFMessageComposeController正是您正在寻找的。

要发送短信,您会看到以下内容:

#import <MessageUI/MessageUI.h>
@interface myClass : NSObject <MFMessageComposeViewControllerDelegate>{
}
@end

@implementation

-(void)sendMessage{
    if([MFMessageComposeController canSendText]){
        MFMessageComposeController *smsComposer =
[[MFMessageComposeController alloc] init]; smsComposer.recipients = [NSArray arrayWithObject:@"12345678"]; smsComposer.body = @"SMS BODY HERE"; smsComposer.delegate = self; [self presentModalViewController:smsComposer animated:NO]; } else{ //You probably want to show a UILocalNotification here. } } - (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result{ /* You can use the MessageComposeResult to determine what happened to the
message. I believe it tells you about sent, stored for sending later, failed
or cancelled. */ [self dismissModalViewControllerAnimated:NO]; } @end

这是目前从您的应用发送短信的唯一方式。除非你只是想打开短信应用程序。如果您不担心邮件正文,可以这样做:

NSString *smsURL = @"sms:12345678";
NSURL *url = [NSURL URLWithString:smsURL];
[[UIApplication sharedApplication] openURL:url];

答案 1 :(得分:1)

呃......我觉得这里的一些讨论会有所帮助。 我(可能是错误的)接受了这个问题,“......以编程方式发送短信......”意味着在幕后发送短信,MFMessageComposeViewController弹出。

如果这是问题,上面答案的绿色选中标记是不正确的。我将假设这是一个问题(我打赌我不是唯一一个)并提供一些子弹来拯救其他人我花在这里的时间。

  1. 堆栈中有一点discussion,这在iOS中是无法完成的。和here
  2. cordova插件for Android做得很好
  3. cordova插件for iOS没有(暗示无法完成。)
  4. 以上代码无法运行。它是一种伪代码。动画:在presentModalViewController上没有,阻止vc弹出,但我总是最终在带有MessageCancelled的didFinishWithResult。
  5. 苹果防止这种情况的正确性。