首页 > 解决方案 > 为什么我在 iOS 13 中的应用程序在被用户终止时通过静默推送在后台唤醒

问题描述

我不知道这是否是Apple的错误或功能。在文档中

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

正如其他 StackOverflow 问题一样, 显示相同。

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

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

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


标签: push-notificationpushios13silentpush

解决方案


我正在使用 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
    }
}

推荐阅读