0

アプリがバックグラウンドにあるときにリモート APN 通知を受信するアプリがあります。通知スタイルがバナーの場合、完全に機能します。

ただし、通知スタイルがアラートであり、10 個の APN を受信する場合、ユーザーは最初のアラートで「起動」を選択した後、後続のアラート ボックスを閉じる必要があります。

アプリケーションの起動後にアラートをクリアする方法はありますか?

applicationDidBecomeActive: および applicationWillEnterForeground: で次のことを試しました。

[application cancelAllLocalNotifications];
application.applicationIconBadgeNumber = 0;

しかし、うまくいきません。他の誰かがこの問題を抱えていますか?

また、WhatsAppがこれを実行できるため、これが可能であることもわかっています.

ありがとうございました!

4

1 に答える 1

0

このトピックで達成したいことは明確に理解しています。ただし、コードは機能しません。

[application cancelAllLocalNotifications]; 

「cancelAllLocalNotifications」は、アプリケーションによってスケジュールされ、同じデバイス上の iOS によって配信されるローカル通知にのみ適用されます。

Apple が説明したように、APNs は、アプリがバックグラウンドにあるときにリモート通知を処理します。アプリがフォアグラウンドにあるか現在アクティブな場合、デリゲートが通知を管理します。


アプリケーションで通知を処理してみてください:didReceiveRemoteNotification

サンプルは次のとおりです: (ここからペイロードを管理できます):

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

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }    

}

アプリがフォアグラウンドにあるかどうか、またはアプリがアクティブであることも確認できます。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
    if(application.applicationState == UIApplicationStateActive) {
        // app active.
    }
    else {
        // app not active
    }
}
于 2012-06-07T22:53:45.037 に答える