当应用程序被终止时,iOS 不会收到推送通知

Son*_*iya 2 objective-c push-notification apple-push-notifications ios firebase-cloud-messaging

我在 Stack Overflow 上发现了类似的问题,但没有一个能澄清这一点。

我正在使用 Firebase Cloud Messaging 在我的应用程序中发送推送通知。我将收到的消息存储在本地数据库中。当我的应用程序处于活动状态或在后台时,我的应用程序能够接收通知(正确调用委托方法),但如果应用程序被强制退出或不在内存中,则设备也会接收通知并位于通知中心但是当应用程序通过图标启动时,没有调用任何委托方法。如果用户单击通知中心中的“消息”,则会启动应用程序,但只会接收单击的消息,而不是所有消息(在收到多个通知的情况下)。据苹果公司称,如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序

但即使用户启动应用程序仍然没有收到收到并位于通知中心的通知。

以下是该应用程序遵循的要点:

  • 我的应用程序没有 VoIP 功能。
  • 可用内容已设置为 1。
  • 已启用接收后台远程通知。
  • 所有发送的通知均已收到并显示在通知中心。

{
    aps =     {
        alert =         {
            body = "Push Notification Test Message";
            title = Push Notification;
        };
        badge = 1;
        "content-available" = 1;
        sound = default;
    };
    "gcm.message_id" = "0:1499340350307980%361a2e5b361a2e5b";
    m = "Push Notification Test Message";
    tag = m;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

  1. 如果应用程序被强制退出或不在内存中,那么您的应用程序将不会收到静默通知(即内容可用设置为 1)。在上述情况下仅收到推送通知。

  2. 如果用户单击通知中心中的“消息”,则会启动应用程序,并且只有单击该消息的应用程序才会在委托方法中收到。您无法访问通知托盘中的所有消息。