1

私はUILocalNotificationのAPIを見てきました。ファイアデートが当たったときのバッジ番号だけを設定したい。ポップアップはありません。バッジ番号が1で、アラート本文がないように通知を設定してみました。しかし、これはうまくいきませんでした。

//Add new local push notification
locationNotification.fireDate = date;
locationNotification.timeZone = [NSTimeZone defaultTimeZone];
//locationNotification.alertBody = [NSString stringWithFormat:body];
//locationNotification.alertAction = @"Ok";
//locationNotification.soundName = UILocalNotificationDefaultSoundName;
locationNotification.applicationIconBadgeNumber = 1;

これは可能ですか?彼らがアプリを開いてからメッセージを表示したいだけです。

4

2 に答える 2

1

私が取り組んだプロジェクトで、このようなことを達成しました。アラートなしで、バッジ番号のみを表示する必要がありました。通知に「サウンド」を追加する必要がある場合があります。私が行ったことは、0.52 つ目のサイレント サウンド ファイルを追加することでした。私のコードは次のようになります。

        UILocalNotification *notif = [[UILocalNotification alloc] init];
        notif.fireDate = [NSDate  date];
        notif.timeZone = [NSTimeZone defaultTimeZone];
        notif.soundName = @"silence.caf";
        notif.applicationIconBadgeNumber = 2;
        [[UIApplication sharedApplication] scheduleLocalNotification:notif];
        [notif release];

お役に立てれば!

于 2012-06-15T14:12:21.737 に答える
0

これは古い質問ですが、これが誰かの役に立てば幸いです。サイレント ローカル通知をスケジュールすることはまったく可能だとは思いませんでしたが、可能なようです。

これは機能します:

    UILocalNotification* notification = [[UILocalNotification alloc] init];
    notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
    notification.timeZone = [NSTimeZone systemTimeZone];
    notification.alertBody = nil;        
    notification.applicationIconBadgeNumber = 99;
    [[UIApplication sharedApplication] scheduleLocalNotification:notification];

スケジュールされた通知でこの通知を識別できるように、userInfo プロパティにいくつかの情報を追加しようとしましたが、これにより通知が起動されないように見えました。

その代わりに、無音のオーディオ ファイルを soundName プロパティとして使用して、それをテストできるようにしています。ただし、サイレント オーディオ ファイルは、実際に通知を発生させるために必要ではないようです。

スケジュールの時点でわかっている値にバッジを更新するよりも便利なことをしたい場合は、サイレント プッシュ通知を使用して、"content-available" フラグを設定する必要があります。

于 2016-08-29T05:55:42.577 に答える