3

在观察 WhatsApp 和类似的聊天应用程序时,我可以看到以下行为:

  1. 关闭互联网连接(蜂窝和 WIFI)。
  2. 确保聊天应用程序未处于活动状态(在后台)。
  3. 向我的设备发送多条消息(通过其他设备)。
  4. 打开互联网。
  5. 在几秒钟内所有消息都显示为通知。

我每次尝试都可以重现这种情况。

现在我正在开发自己的 iPhone 应用程序,但我似乎无法弄清楚如何实现这种行为。据我了解,这可以通过多种方式实现:

使用 APNS 的 QoS 功能:
我读到 QoS 会在消息未传递到设备时存储消息,并在设备重新连接时再次发送。但是,由于两个原因,此解决方案没有意义:

  1. 据说 QoS 一次只保存一条未传递的消息。但就我而言,我收到的信息不止一条。

  2. 当我打开互联网连接时,消息会立即显示,并且 QoS 文档说可能需要一些时间才能收到未传递的消息。

使用后台服务或监听连接变化:
关于后台服务,我知道最接近正在运行的后台服务的是 Background Fetch,但它似乎不适合这里,因为它是周期性的。
而且我也找不到任何可以连接的回调,以了解我在后台时连接何时发生变化,并执行一些操作。

您知道如何为 iPhone 应用程序实现此功能吗?(QoS?其他后台 API?)

4

0 回答 0