可以推送通知被用来在不通知用户运行的代码?(Can push notifications be us

2019-06-26 20:41发布

我有需要与服务器进行通信的应用程序(刷新它的数据),每24小时一次。 这需要发生,即使应用程序不公开,也没有在后台运行。

理想情况下,我想要的是:

  • 每隔24小时,我的服务器发送推送通知到iPad
  • 这唤醒了应用程序,并运行必要的刷新数据的代码
  • 然后,将通知被丢弃

任何的可能吗?
是该应用只唤醒通知上的用户点击之后? 或者,我可以运行出通知之前一些代码? 我甚至可以丢弃的通知邮件?

如果推送通知是不这样做的正确方法是什么???

多谢你们!

Answer 1:

与iOS 7的发布,这是最后可能使用远程/静音的通知。 他们的工作一样推送通知,但不是提醒用户他们立刻可以启动背景提取模式和上传/下载新内容。

下面是简单的教程: http://www.objc.io/issue-5/multitasking.html



Answer 2:

这是唯一可能的,如果你的应用程序是一个报亭应用,如果是,你可以发送推送通知content-available: true每24小时一次。

如果它不是一个报亭应用,您可以改用GPS围栏运行代码。 它允许让用户设置GPS围栏,如果他们想要的应用,当用户接近的区域(即他们的家庭/工作)更新。 这将唤醒应用程序,你可以运行在后台下载即可。 Instapaper的例如做到这一点。



Answer 3:

如果周期总是要在24小时可以使用本地通知,而不是推送通知。

您的应用程序将无法运行,除非用户打开了推送通知的任何代码,推送通知是由OS处理,你的应用程序有没有对他们的控制,同时它不是主动或在后台,你应该看一看推通知编程指南

完成你正在尝试做的另一种方式,是每一个应用程序被启动,最后一次更新发生的24个小时内较早的时间从服务器获取数据,

  1. 每次联系服务器保存日期NSUserDefault
  2. 每次用户打开应用程序检查,如果最后一个服务器发生接触前24小时,然后刷新数据


Answer 4:

它采用所谓的VOIP推送通知是可能的。 该通知可以在后台运行的代码,即使该应用程序是完全封闭的。



文章来源: Can push notifications be used to run code without notifying user?