0

我google了很多,但我找不到答案。

我正在尝试在应用程序处于后台时获取推送通知的内容/有效负载。

方法:

- (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 回答