0

私はたくさんグーグルで検索しましたが、答えが見つかりません。

アプリがバックグラウンドにあるときにプッシュ通知のコンテンツ/ペイロードを取得しようとしています。

方法:

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

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

動作しません。

4

1 に答える 1

0

background modeアプリケーション(オーディオ、GPS、VoIPのいずれか)がない場合は、メソッド-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfoがすぐに呼び出されるのではなく、ユーザーが[開く]ボタンを押してアプリをフォアグラウンドに移動した後に呼び出されます。彼または彼女が通知をスキップすることを決定した場合、それについては何もできません。つまり、アプリケーションがフォアグラウンドに戻ったときに状態を更新する必要があるため、プッシュ通知に依存してデータを更新することはできません。

より良いオプションは、バッジカウンターを使用して変更を追跡することです。サーバー側で計算する必要があります。次に、フォアグラウンドのアプリに正のバッジ番号がある場合は、データを更新してカウンターをリセットします。ただし、通知が配信される保証がないため、これは完全ではありません。バッジカウンターを手動で確認する必要があります(または、変更の数を確認するように言うことができます)。

于 2012-09-04T12:17:21.340 に答える