Как можно программно отправить SMS на определенный номер, выбранный в списке контактов в iPhone?
отправка смс программно в айфоне
Ответы (2)
MFMessageComposeController
это то, что вы ищете.
Чтобы отправить SMS, вы смотрите что-то вроде этого:
#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
На данный момент это единственный способ отправлять SMS из вашего приложения. Если вы просто хотите открыть приложение SMS. Если вас не беспокоит тело сообщения, вы можете сделать это:
NSString *smsURL = @"sms:12345678";
NSURL *url = [NSURL URLWithString:smsURL];
[[UIApplication sharedApplication] openURL:url];
messageComposeDelegate
вместо delegate
?
- person Sedat Kilinc; 05.07.2012
Э... Я думаю, небольшое обсуждение было бы полезно здесь. Я (возможно, ошибочно) рассматриваю вопрос «... отправить SMS программно ...» как означающий отправку SMS за кулисами, без всплывающего окна MFMessageComposeViewController.
Зеленая галочка для ответа выше неверна, ЕСЛИ это вопрос. Я собираюсь предположить, что это вопрос (держу пари, что я не единственный), и предложу несколько пуль, чтобы сэкономить другим время, которое я потратил на то, чтобы добраться сюда.
- Немного тишины обсуждение в стеке, что это невозможно сделать в iOS. и здесь
- Плагин Cordova для Android отлично справляется со своей задачей.
- плагин Cordova для iOS не работает (подразумевается, что он не может быть сделано.)
- Код выше не работает. Это своего рода псевдокод. Анимированный: NO в presentModalViewController предотвращает появление vc, но я всегда оказываюсь в didFinishWithResult с MessageCancelled.
- Apple имеет право предотвратить это.