为什么我的 iOS 13 应用程序在被用户终止时通过静默推送在后台唤醒

Sur*_*rma 5 push push-notification silentpush ios13

我不知道这是苹果的错误还是功能。在文档中

如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序。

至于其他StackOverflow的问题是有这个 这个显示相同。

在我的情况下,系统在后台重新启动应用程序并运行用于存储在数据库中的代码。怎么可能呢?它调用方法 didFinishLaunchingWithOptions: 然后didReceiveRemoteNotification:在后台(未显示在应用程序切换器中)。但是在早期版本中,它不会唤醒在 iOS 12.2 中测试的后台应用程序

我正在发送有效载荷以进行通知

  "aps": {
    "alert": {
      "body": "",
      "title": ""
    },
    "mutable-content": 0,
    "category": "",
    "badge": "",
    "sound": "",
    "content-available": 1
  },
  "data": {
   //other fields
  }
 }


Run Code Online (Sandbox Code Playgroud)

Ant*_*ius 0

我使用的是 13.3,无法复制此内容。当用户强制退出但根本无法工作时,努力尝试唤醒应用程序。我什至在此 FCM 有效负载中使用 2 个 content_available 和 content-available:

{
    "registration_ids": [
        "dX0-3Mmu9UIirh_ov4wJpl:APA9111112222233333jVRvrsvtoarX4zjtq1UjjaNtxPRL9UmXdV1l5DYMxJ86DTVxG9TDkqIEldEoRthisEfZQ5lOe8wY5ef2xoBtYv5rAM4CJizDblNh5qoZV2VvQxtoRRTIv1GiB"
    ],
    "priority": "high",
    "content_available": true,
    "content-available": 1,
    "data": {
        // other data
    }
}
Run Code Online (Sandbox Code Playgroud)