尽管content_available = true,didReceiveRemoteNotification也没有在后台调用

时间:2016-09-25 11:02:46

标签: ios swift background push-notification

我在我的应用程序中使用推送通知,它工作正常,但我想接收通知,如果我的应用程序在后台但方法didReceiveRemoteNotification未被调用
    我生气了     1-启用背景模板
    2-检查远程通知
    3- put content_available = true在数据有效负载中 而且当我从fcm仪表板上测试它不起作用时,
请任何人帮助我,谢谢。

2 个答案:

答案 0 :(得分:0)

如果您在iOS 10上进行测试,则content_available必须位于JSON密钥的notification值,而不是data密钥。虽然对于iOS <= iOS 9content_available可以JSON值为datanotification

答案 1 :(得分:-1)

您的应用需要处理所有可能的推送通知递送状态:

您的应用刚刚推出 你的应用程序只是从背景到前景 您的应用已在前台运行 您无法在交付时选择使用哪种演示方法来呈现推送通知,该推送通知在通知本身中编码(可选警报,徽章编号,声音)。但是,由于您可能控制了推送通知的应用程序和有效负载,因此您可以在有效负载中指定是否已经向用户显示了警报视图和消息。只有在应用程序已经在前台运行的情况下,您才知道用户不是通过警报或定期从主屏幕启动您的应用程序。

您可以使用以下代码判断您的应用是否只是在didReceiveRemoteNotification中被带到了前台:

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

{
    if ( application.applicationState == UIApplicationStateActive )
    // app was already in the foreground
    else
    // app was just brought from background to foreground
    ...
}

供进一步参考。请检查

didReceiveRemoteNotification when in background