2013-05-06 2 views
0

Я уже знаю, что есть возможность для нас отправить sms программно, используя MFMessageComposeViewController, но можно ли запланировать сообщение указанному получателю. в настоящее время я использую следующий код для отправки смс:Расписание sms программно без какого-либо взаимодействия с пользователем в iphone

Class smsClass = (NSClassFromString(kMessageComposer)); 

if(smsClass != nil && [MFMessageComposeViewController canSendText]) 
{ 
    MFMessageComposeViewController *smsSendController = [[[MFMessageComposeViewController alloc] init] autorelease]; 
    smsSendController.messageComposeDelegate = self; 
    smsSendController.body = messageBodyView.text; 
    smsSendController.recipients = [[[NSArray alloc]initWithObjects:numberField.text,nil]autorelease]; 
    if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 6.0) 
    { 
     [self presentViewController:smsSendController animated:YES completion:nil]; 
    } 
    else 
    { 
     [self presentModalViewController:smsSendController animated:YES]; 
    } 
} 

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 
{  
    switch (result) 
    { 
     case MessageComposeResultCancelled: 
     { 
      UIAlertView *smsCancelledAlert = [[UIAlertView alloc] initWithTitle:kApp message:kCancel 
                  delegate:self cancelButtonTitle:kOk otherButtonTitles: nil]; 
      [smsCancelledAlert show]; 
      [smsCancelledAlert release]; 
     } 
      break; 
     case MessageComposeResultFailed: 
     { 
      UIAlertView *smsFailedAlert = [[UIAlertView alloc] initWithTitle:kApp message:kError 
                  delegate:self cancelButtonTitle:kOk otherButtonTitles: nil]; 
      [smsFailedAlert show]; 
      [smsFailedAlert release]; 
     } 
      break; 
     case MessageComposeResultSent: 
     { 
      UIAlertView *smsSentAlert = [[UIAlertView alloc]initWithTitle:kApp message:kSent delegate:self cancelButtonTitle:kOk otherButtonTitles:nil, nil]; 
      [smsSentAlert show]; 
      [smsSentAlert release]; 
     } 
      break; 

     default: 
      break; 
    } 
    if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 6.0) 
    { 
     [self dismissViewControllerAnimated:YES completion:nil]; 
    } 
    else 
    { 
     [self dismissModalViewControllerAnimated:YES]; 
    } 
} 

Я также хотел бы знать, работает ли этот код совершенный во всех версиях выше 4.3 до даты 6.0.As сейчас у меня нет устройства доступны для испытайте это. Для этого нужны некоторые ответы от тех, кто испытал этот код как работающий/неудавшийся.

В дополнение к этому, я хотел бы запланировать сообщение, то есть указанное пользователем дату &, и процесс должен работать в фоновом режиме без какого-либо взаимодействия с пользователем.

Может кто-нибудь, пожалуйста, назовите меня, как этого достичь.

Спасибо всем заранее :)

ответ

1

С MFMessageComposerViewController это не представляется возможным отправить без взаимодействия с пользователем.

вы можете рассмотреть вопрос о создании пользовательского веб-сервиса на смс шлюз, чтобы сделать достижения этой цели

+0

Как я могу это сделать и можно запланировать смс в MFMessageComposeViewController –

+0

http://stackoverflow.com/questions/7715824/how- to-schedule-events-programatically-in-ios –

+0

Извините, что здесь делать с NSTimer, он просто устанавливает временной интервал, а не дату и время, как я могу связать это с MFMessageComposeViewController –