gpt4 book ai didi

ios - 定期以后台模式 (iOS) 发送 HTTP 请求

转载 作者:可可西里 更新时间:2023-11-01 02:04:52 25 4
gpt4 key购买 nike

我正在为我的应用开发一个很棒的功能,它需要在后台定期发送 HTTP 请求。

我已经在这里阅读了很多文章和讨论,但还没有想出解决方案,因为我在 stackoverflow.com 上遇到了所有建议。仅部分解决问题。

让我详细解释一下我希望我的应用程序做什么。

假设有一个带有 API 的网站,我想定期发送请求(当应用程序处于后台模式时)以检查网站上的数据状态。如果数据状态可接受,我会向用户发送推送通知,通知他此时数据是正确的。

有人可以提出如何在 iOS 应用中实现这个想法的解决方案吗?

最佳答案

正如您所描述的那样,在 iOS 上您无法执行此操作。当您的应用程序处于后台或未运行时,您无法安排定期执行的任务。您也无法控制 iOS 在后台运行时是否决定终止您的应用程序,因此“未运行”是您需要处理的情况(您不能长时间在后台运行如你所愿)。

虽然我不确定我是否理解服务器端的事情。如果您的服务器正在处理数据直到它可以接受,并且它可以发送推送通知,为什么它需要等待来自手机的传入请求?为什么不在数据准备好后才发送推送?如果应用决定什么是“可接受的”,也许让应用告诉服务器它想要什么,以便服务器知道何时发送推送。

有几个选项可以接近您所描述的内容。如果您在您的应用程序中实现“后台获取”功能,iOS 将在应用程序未运行时启动该应用程序,并让它在后台进行网络调用。但是,无法保证这种情况发生的频率。这在 Apple's background execution docs 中有描述。

另一个选项是“静默”推送通知。如果您的服务器发送其中之一,iOS 可以在后台启动应用程序来处理通知。如有必要,该应用程序可以进行网络调用。您可以随时发送这些内容,但 Apple 警告不要过度发送:

Silent notifications are not meant as a way to keep your app awake in the background, nor are they meant for high priority updates. APNs treats silent notifications as low priority and may throttle their delivery altogether if the total number becomes excessive. The actual limits are dynamic and can change based on conditions, but try not to send more than a few notifications per hour.

Apple's push notification docs 中描述了静默推送.

关于ios - 定期以后台模式 (iOS) 发送 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43919285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com