我正在为我的应用程序开发一个很好的功能,需要定期在后台发送HTTP请求。
我已经阅读了许多文章和讨论,但没有找到解决方案,因为我在stackoverflow.com上遇到的所有建议只是部分地解决了问题。
让我详细说明一下我的应用程序需要做什么。
考虑有一个带有API的网站,我想定期发送请求(当应用程序处于后台模式时)以检查网站上数据的状态。如果数据的状态可接受,我将向用户发送推送通知,通知他目前的数据是正确的。
是否有人可以提出如何在iOS应用程序中实现这个想法的解决方案?
我正在为我的应用程序开发一个很好的功能,需要定期在后台发送HTTP请求。
我已经阅读了许多文章和讨论,但没有找到解决方案,因为我在stackoverflow.com上遇到的所有建议只是部分地解决了问题。
让我详细说明一下我的应用程序需要做什么。
考虑有一个带有API的网站,我想定期发送请求(当应用程序处于后台模式时)以检查网站上数据的状态。如果数据的状态可接受,我将向用户发送推送通知,通知他目前的数据是正确的。
是否有人可以提出如何在iOS应用程序中实现这个想法的解决方案?
静默推送在苹果的推送通知文档中有描述。静默通知不应作为使应用程序在后台保持唤醒状态的方法,也不应用于高优先级更新。APNs 将静默通知视为低优先级,如果总数过多,可能会完全限制其传递。实际限制是动态的,可以根据情况改变,但请尽量不要每小时发送超过几个通知。
iOS后台执行限制
问题
如何让我的应用程序在后台持续运行?
如果我安排一个计时器,如何在屏幕锁定时触发它?
如何每15分钟在后台运行代码?
如何设置在后台运行的网络服务器?
当我的应用程序处于后台状态时,如何为另一个应用程序提供IPC服务?
苹果公司的答案:
对所有这些问题的简短回答是:你不能。iOS对后台执行设置了严格的限制。其默认行为是在用户将应用程序移到后台后不久暂停您的应用程序;此暂停会阻止进程运行任何代码。