我google了很多,但我找不到答案。
我正在尝试在应用处于后台时获取推送通知的内容/有效负载。
方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
和
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
不起作用。
答案 0 :(得分:1)
如果您的应用程序没有任何background mode
(音频,gps或voip之一),方法-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
将不会立即被调用,但在用户按下“打开”按钮后应用程序前景。如果他或她决定跳过通知,则无法对其进行任何操作,这意味着您需要在应用程序返回前台时刷新状态,您不能依赖推送通知来更新数据。
更好的选择可能是使用徽章计数器来跟踪更改,您需要在服务器端计算它。然后,如果前台中的应用程序具有正徽章编号,则会更新数据并重置计数器。然而,这并不完美,因为无法保证通知已发送 - 您仍需要手动检查徽章计数器(或者您可以说检查更改次数)。