2

私はiPhoneアプリケーション開発に不慣れです。

私はSMSを送信するためのアプリケーションを作成しています。

私のアプリケーションでは、指定された時間にSMSを送信する必要があります。

UITextFieldで時間を指定するタイムピッカーがあります。

-(void)sendInAppSMS {NSLog(@ "SendMessage");

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を送信します(メッセージをどこかに保存する必要はありません)。

それ以外の場合は、現在の時刻が指定された時刻になったときに、そのSMSを送信する必要があります。時間に達するまで、メッセージを保持(保存)して時間どおりに送信する方法。

よろしく、

Rajendran.B

4

3 に答える 3

2

iOSではタイマーを使用してSMSを送信することはできません。Appleはこの機能を許可していません。

これを参照してください

于 2012-11-26T06:11:37.943 に答える
0

他の回答で指摘されているように、ユーザーが作成したメッセージをMFMessageComposeViewController後で送信するために「保存」することはできません(他の方法もありません)。

オプションは次のとおりです。

  • 事前にSMSの詳細を収集しますが、正しい時間にユーザーにプロンプ​​トを表示します。UILocalNotificationアプリが閉じている可能性がある場合は、これにを使用できます。setTitle:インスタンスでsetBody:、、を使用setRecipients:して適切な詳細が事前に入力されたメッセージを開くことができるMFMessageComposeViewControllerため、ユーザーは送信を押すだけで済みます。

  • メッセージの詳細をサーバーに送り返し、TwilioAPIなどのSMSシステムを使用して適切なタイミングでSMSを送信します。これにより、かなり複雑になり、SMSはユーザーの電話番号から送信されません。

于 2012-11-26T07:25:49.880 に答える
0

ユーザーエクスペリエンスの観点から、現在の時刻が指定された時刻の正確な分と一致しない限り、コードでユーザーがメッセージを送信できる可能性はほとんどありません。時刻が指定された時刻の特定の範囲内にあるかどうかを確認する方が理にかなっています。また、文字列リテラルを比較していない場合は、これらの比較を行う方が簡単です。(NSDateおよび関連する便利なメソッドを使用してこれらの比較を行います)

特定の時間にメッセージを送信するという点では、送信するメッセージと送信時刻を登録し、指定された間隔でメッセージ送信キューにあるメッセージを処理するサーバーコンポーネントが必要になる可能性があります。 。

于 2012-11-26T07:01:31.833 に答える