2

リモート通知で考えられるすべてのケースを処理しようとしています。アプリがフォアグラウンドにあるときは大丈夫です-didReceiveRemoteNotificationが呼び出されます。問題は、アプリがバックグラウンド状態で、プッシュ通知を受け取る場合です。何も呼び出されません。アプリがフォアグラウンドに戻ったときに、新しいリモート通知があることをユーザーに知らせる方法は?

4

3 に答える 3

6

プッシュ通知を傍受する唯一の方法は、ユーザーが通知センターで通知をタップしたとき (またはロック画面からアプリ アイコンをスライドしたとき) です。

この場合、アプリがフォアグラウンドになる前にdidFinishLaunchingWithOptions、アプリ デリゲートのメソッドが呼び出されます。を使用しNSDictionary launchOptionsて、アプリが通知センターから起動されたか、アイコンをタップして起動されたかを判断する必要があります (通常の使用)。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSDictionary *pushDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    if (pushDic != nil) {
        NSLog(@"Notification");
    }
    else {

    }
}
于 2012-09-19T14:58:23.887 に答える
-3

プログラミングガイドをご覧ください。

アクションボタンがタップされた場合(iOSを実行しているデバイスで)、システムはアプリケーションを起動し、アプリケーションはそのデリゲートのアプリケーションを呼び出します。didFinishLaunchingWithOptions:メソッド(実装されている場合)。通知ペイロード(リモート通知の場合)またはローカル通知オブジェクト(ローカル通知の場合)を渡します。

于 2012-09-19T14:04:54.370 に答える
-3

もちろん、アプリがバックグラウンドにある場合は、何も呼び出されません...

アプリが起動されていない (バックグラウンドで中断されていない) 場合、

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

通知ペイロードが含まれます (キー UIApplicationLaunchOptionsRemoteNotificationKey):

NSDictionary *remoteNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
于 2012-09-19T15:00:42.907 に答える