2012-11-26 6 views
2

iphone 응용 프로그램 개발을 처음 사용합니다.특정 시간에 SMS를 보내는 방법

나는 SMS를 보낼 응용 프로그램을 만들고 있습니다.

내 응용 프로그램에서 지정된 시간에 SMS를 보내야합니다.

UITextField에서 시간을 지정하는 시간 선택 도구가 있습니다.

- (void) sendInAppSMS { NSLog (@ "SendMessage"); 시간 후 SMS를 nowitself합니다 (님에게 메일 어디를 저장할 필요가 없습니다)를 보내 현재 시간에 동일한 경우는

if([textFieldRounded.text isEqualToString:@""] || [textFieldRounded1.text isEqualToString:@""] || [textFieldRounded2.text isEqualToString:@""] || [textFieldRounded.text isEqualToString:@"(null)"] || [textFieldRounded1.text isEqualToString:@"(null)"] || [textFieldRounded1.text isEqualToString:@"(null)"] || [textFieldRounded.text isEqualToString:nil] || [textFieldRounded1.text isEqualToString:nil]|| [textFieldRounded2.text isEqualToString:nil]) 
{ 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"SMS" message:@"Please Enter All Fields!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; 
    [alert show]; 
} 
else 
{ 
    NSLog(@"Done"); 
    NSDateFormatter *SentTime = [[NSDateFormatter alloc] init]; 
    [SentTime setDateFormat:@"dd/MM/YYYY hh:mm aa"]; 
    NSDate *now1 = [NSDate date]; 
    NSString *Time1 = [SentTime stringFromDate:now1]; 
    NSLog(@"Time is :%@",Time1); 
    NSString *Sentime=[NSString stringWithFormat:@"%@",textFieldRounded2.text]; 

    if([Sentime isEqualToString:Time1]) 
    { 
     NSLog(@"Time Matching... can send msg now"); 

     MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
     if([MFMessageComposeViewController canSendText]) 
     { 

      NSString *Message = [NSString stringWithFormat:@"%@, %@",textFieldRounded1.text,textFieldRounded2.text]; 
      NSLog(@"Message is %@", Message); 
      controller.body = Message; 
      controller.recipients = [NSArray arrayWithObjects:@"+919999999999" , nil]; 
      controller.messageComposeDelegate = self; 
      [self presentModalViewController:controller animated:YES]; 
     } 

    } 
    else 
    { 
     NSLog(@"Send Message when time reach at %@",textFieldRounded2.text); 

     //Here What code i should write 
    } 
} 

}

.

다른 현명한 시간은 지정된 시간이되면 다른 sms를 보내야합니다. 시간이 될 때까지 메시지를 보관 (저장)하고 시간을 보내는 방법에 도달합니다.

감사합니다,

Rajendran.B는

+1

PLZ 점유율 노력과 유 한 몇 가지 코드를 작성합니다. – Milind

+0

textFieldRounded2.텍스트 여기에 지정된 시간이 포함되어 있습니다 ... – Rajendran

답변

2

당신은 아이폰 OS에서 타이머를 사용하여 SMS를 보낼 수 없습니다, 애플은이 기능을 허용하지 않습니다. 사용자 경험의 측면에서

see this

+0

그래, 그냥 게시했습니다. – klcjr89

0

, 당신의 코드는 현재 시간이 지정된 시간의 정확한 분 일치하지 않으면 사용자가 메시지를 보낼 수 있도록 매우 낮다. 시간이 지정된 시간 이후 또는 특정 시간 범위 내에 있는지 확인하는 것이 더 합리적입니다. 또한 문자열 리터럴을 비교하지 않는 경우 이러한 비교를 쉽게 수행 할 수 있습니다. (이러한 비교를 위해 NSDate 및 관련 편의 방법 사용)

특정 시간에 메시지를 보내려면 전송할 메시지와 보내야 할 시간을 등록해야하는 서버 구성 요소가 필요할 수 있습니다 지정된 간격으로 메시지 보내기 큐에있는 메시지를 처리합니다.

+0

이 작업을 수행하는 다른 방법은 ... – Rajendran

0

다른 답변에서 지적했듯이 MFMessageComposeViewController에 사용자가 작성한 메시지를 "저장하여 나중에 보내거나 다른 방법으로 보낼 수 없습니다".

옵션은 다음과 같습니다

  • 은 미리의 SMS에 대한 세부 정보를 수집,하지만 정확한 시간에 사용자하라는 메시지를 표시합니다. 앱을 종료 할 수있는 경우 UILocalNotification을 사용할 수 있습니다. 사용 채워져 올바른 정보와 함께 메시지를 열 수 MFMessageComposeViewController 인스턴스 setTitle:, setBody:setRecipients:, 사용자는 단지 보내 공격 할 것 때문에.

  • 메시지 세부 정보를 다시 서버로 보내고 Twilio api와 같은 SMS 시스템을 사용하여 적절한 시간에 SMS를 보냅니다. 이것은 상당한 복잡성을 추가 할 것이며 SMS는 사용자의 전화 번호에서 오지 않을 것입니다.

관련 문제