web-dev-qa-db-ja.com

通知センターから単一のリモート通知を削除する

私のアプリはAppleサーバーからリモート通知を受信します。

ユーザーがタップしたときに、単一のリモート通知を通知センター(iOs 5.0以降で使用可能なドロップダウンメニュー)から削除する方法はありますか?

enter image description here

ありがとう!

25
MaTTP

IOS SDK 5.0以降、特定の通知を削除する方法はありません。アプリからすべての通知を削除して、ユーザーがアプリからアプリを開いたときに通知センターに表示されないようにするには、次のようにアプリバッジを0に設定します。

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

編集:iOS 8では、通知センターで通知をタップしてアプリを開くと、SpringBoardが通知を自動的に閉じているようです。

27
Javier Soto

ここに提案がありますが、欠点はありますが、私自身は試していません。

  • サイレント通知をプッシュします(contentAvailable:true)。プッシュ内に「アラート」を含めず、プッシュのカスタムプロパティにアラートテキストを配置します。
  • 着信プッシュを処理してローカル通知をトリガーし、すぐに表示します
  • ユーザーがローカル通知をクリックした場合は、[UIApplication cancelLocalNotification:]を使用して、通知センターから通知を削除します。
8
Vamos

メソッドを呼び出すとき:AppDelegateメソッド内の_[application cancelAllLocalNotifications];_:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

そして

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

特定のアプリのローカル通知とプッシュ通知はすべて削除されます。

2
MyXEDNotes