-1

私は問題を解決しました:UILocalNotificationを次のように送信したとき:</p>

UILocalNotification *alarm = [[UILocalNotification alloc] init];
if (alarm) {
    alarm.fireDate = [NSDate date];
    alarm.timeZone = [NSTimeZone defaultTimeZone];
    alarm.repeatInterval = 0;
    alarm.soundName = UILocalNotificationDefaultSoundName;
    alarm.alertBody ="This is 1 message";

    if (object) {
        NSDictionary *infoDic = [NSDictionary dictionaryWithObject:object forKey:objectkey];
        alarm.userInfo = infoDic;

    }


    [[UIApplication sharedApplication] presentLocalNotificationNow:alarm];


コードを確認できます。通知を 2 回送信すると、モバイルのパネルで「This is 1 message」「This is 1 message」というメッセージを 2 回受信できます。alarm.alertBody の内容を変更したくないのですが、メッセージを 2 回受信したときに、「これは 1 つのメッセージです」「これは 1 つのメッセージです」という 2 つのメッセージを 1 つの「メッセージが 2 つある」としてマージできます。タスクを完了できる場合は、どの API を使用できますか? Androidのステータス情報とパネル情報は異なりますが、iOSのアラートボディは1つだけだと思います.ステータスとパネルは同じですよね?

編集:なぜ私に-2を与えるのかわかりません、私の質問は簡単ですか? または他の?答えは私の必要ではありません。

編集 2: 私は自分の必要性を説明します。ユーザーが15人から異なる1つのメッセージを受け取ると、1つずつ来るので、[NSString stringWithFormat:@"there are %d messages",count]を与えることはできません。ユーザーがパネルを開くと、「メッセージが 15 件あります」と表示されるだけで、「メッセージが 1 件あります」というメッセージが 14 件表示されます。答え 1、答えを教えてください: ステータスで「メッセージが 15 件あります」ですが、それほど多くのメッセージをくれる人はいません。メッセージは 1 つしかくれません。

4

1 に答える 1

0

通知をスケジュールする関数を作成できます。アラート メッセージの配列を作成し、毎回新しいアラートを追加するためにカウンタ +1 を使用します。次に、次のようなものが役立つように、特定の日付にローカル通知をスケジュールできます。

- (void)scheduleNotification:(NSDate*)showDate withMsg:(NSString*)msg
{
Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) {

        UILocalNotification *notif = [[cls alloc] init];
        //      notif.fireDate = [datePicker date];

        //setting the fire dat of the local notification
        notif.fireDate = showDate;//[NSDate dateWithTimeIntervalSinceNow:5];


        //setting the time zone
        notif.timeZone = [NSTimeZone defaultTimeZone];

        //setting the message to display
        //notif.alertBody = @"You are notified";
        notif.alertBody = msg;

        //default notification sound
        notif.soundName = UILocalNotificationDefaultSoundName;

        //displaying the badge number
        notif.applicationIconBadgeNumber = [[UIApplication sharedApplication]applicationIconBadgeNumber]+1;

        //schedule a notification at its specified time with the help of the app delegate
        //        NSLog(@"Todays date:%@ Notification Date:%@",[NSDate date],showDate);

        // Displaying Button tittle
        notif.alertAction = @"Show me";

        //      //setting the values in dict of local notification  
        //      NSDictionary *userDict = [NSDictionary dictionaryWithObject:_serverMsg
        //                                                             forKey:kRemindMeNotificationDataKey];
        //      notif.userInfo = userDict;

        [[UIApplication sharedApplication] scheduleLocalNotification:notif];

    }

}
于 2012-12-06T07:36:26.027 に答える