2

ユーザーが通知センターでこの通知をタップすると、通知をキャンセルできることを知っています。しかし、システムから関連するローカル通知を取得できない他の場所で通知をキャンセルできますか? ローカル通知をシリアル化し、次回アプリを実行するときにキャンセルできますか?

誤解させてごめんなさい!

通知センターに投稿された通知を閉じたいのですが、スケジュールされた通知は閉じません。だから私が聞きたいのは、ローカル通知オブジェクトを保存する方法です。それから、次にアプリを起動したときにそれを閉じることができます。たぶん、この仕事は現在のSDKではできません。

4

3 に答える 3

2

すべての通知をキャンセルする必要がある場合は、次を使用できます。

[[UIApplication sharedApplication] cancelAllLocalNotifications];

特定の通知をキャンセルするには:

[[UIApplication sharedApplication] cancelLocalNotification:aNotification];

特定の通知を取得するには、次を使用できます。

NSArray *notifArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
for (int i = 0; i < [notifArray count]; i++)
{
    UILocalNotification *aEvent = [notifArray objectAtIndex:i];
    NSDictionary *userInfo = aEvent.userInfo;
    NSString *notifId=[NSString stringWithFormat:@"%@",[userInfo valueForKey:@"id"]];
    if ([id isEqualToString:cancelId])
    {
        [[UIApplication sharedApplication] cancelLocalNotification:aEvent];
        break;
    }
}

ここ:

  • userInfo特定のローカル通知を識別するために、通知の id キーと値のペアを保存する必要があります
  • cancelIdキャンセルしたい通知のIDです(ユーザー情報に保存されます)
于 2013-01-31T04:45:57.327 に答える
1

このコードを使用して、スケジュールされたすべての通知を取得します。

NSArray *reminderArray=[[UIApplication sharedApplication]scheduledLocalNotifications];

次に、必要な通知を選択して削除できます。

[[UIApplication sharedApplication]cancelLocalNotification:yourNotification];
于 2013-01-31T04:14:20.833 に答える
1

通知へのリンクを保存すると、通知が発生する前にキャンセルできます。

[[UIApplication sharedApplication]cancelLocalNotification:yourNotification];
于 2013-01-31T04:16:06.480 に答える