【问题标题】:How to make a request to a server when the iOS 9 app is closed?iOS 9 应用程序关闭时如何向服务器发出请求?
【发布时间】:2026-01-05 10:50:02
【问题描述】:

美好的一天。我已经阅读了很多关于这个问题的内容,并且对于以前版本的 iOS 有很多 SO 问题。

我想知道,对于 iOS 9,如果应用程序没有打开(所以它没有启动或被强制退出),我能否以某种方式向服务器发送数据(一个包含大约 20-30kbs 有效负载数据的请求) )?

或者从 iOS 9.3 开始,这仍然是不行的?

我什至可以在没有收到服务器响应的情况下离开(我很绝望)

【问题讨论】:

标签: ios cordova mobile


【解决方案1】:

长期以来,我们一直在与类似的要求作斗争。但我们最终决定不这样做。

Apple 建议只对您的应用程序进行快速状态日志,以便您在再次打开应用程序时可以恢复相同的状态。当应用程序即将进入后台时,最好的做法是在磁盘上写入一些内容,这在应用程序再次加载时可能会有用。

我们尝试在每次用户将应用程序转到后台时连接到服务器,但在添加此代码后我们看到了很多应用程序崩溃问题。因为,如果需要时间转到后台,操作系统强制退出应用程序。

我们最终决定将任何信息存储在磁盘上,然后在下次打开应用程序时将其发送到服务器。

【讨论】:

  • 谢谢!但我所需要的只是向服务器发送一个带有有效负载的请求。所以绝对没有办法正确地做到这一点?
  • 当应用程序即将进入后台时连接到服务器是个坏主意。对于大多数使用 3G 的人来说,你肯定会导致应用程序崩溃。
  • 在我们的例子中,我们只发送了几个字节的数据,20% 的用户面临崩溃。
  • 您可以尝试将信息写入磁盘,然后尝试执行服务器调用,这将保存状态以便可以检索,但如果连接速度足够快,服务器调用可能会继续在应用程序被强制退出之前通过。
  • @codetiger 谢谢。这是我不想要的)