在特定时间和日期调用iOS应用程序

在特定时间和日期调用iOS应用程序,ios,Ios,我想让我的iOS应用程序知道特定日期和时间何时到达,不会出现任何故障。现在,这个时间可以是天/周/月,我的应用程序可以处于backgorund或terminated状态 因此,有以下几种选择: A.本地通知——但当我的应用程序处于后台时,它不会通知。 B静默推送通知——它可以工作,但它需要我们为同样的内容构建服务器 是否有其他选项可以实现同样的效果?没有。听起来您必须使用推送通知 如果您的应用程序被终止,这是唯一有效的方法。您无法实现这一点, 你的选择是: 1) 通过使用本地通知类似于在特定时间

我想让我的iOS应用程序知道特定日期和时间何时到达,不会出现任何故障。现在,这个时间可以是天/周/月,我的应用程序可以处于backgorund或terminated状态

因此,有以下几种选择: A.本地通知——但当我的应用程序处于后台时,它不会通知。 B静默推送通知——它可以工作,但它需要我们为同样的内容构建服务器


是否有其他选项可以实现同样的效果?

没有。听起来您必须使用推送通知


如果您的应用程序被终止,这是唯一有效的方法。

您无法实现这一点, 你的选择是: 1) 通过使用本地通知类似于在特定时间安排通知,并将该时间和相关活动存储在userdefaults中。每当应用程序状态在appdelegates-(void)ApplicationIDBecomeActive:(UIApplication*)应用程序中从后台变为前台时,请编写代码以处理所需的功能


2) 静默推送通知,仅当应用程序处于后台/最小化状态时才起作用。一旦你的应用程序被终止(从多任务中刷起),即使是无声推送通知也无法唤醒你的应用程序


3) 为了克服静默推送通知的局限性,苹果在iOS8中为whatsapp、Skype等voip应用程序引入了推送套件通知,推送套件通知一旦收到,即使应用程序终止或未在后台运行,也会唤醒应用程序。同样,除非您实际使用voip,否则无法使用Pushkit。

您可以在特定时间安排本地通知。这将通知用户,即使应用程序被终止或在后台。并没有绝对保证的方式,你们可以做到这一点。您所能做的最好的事情就是在指定时间从服务器进行静默推送,但设备可能已关闭或没有活动连接。为什么您说当应用程序位于后台时,本地通知不会发出通知?确实如此,请看类引用。当应用程序不是前台时,用户将收到系统警报/徽章/警报声音(取决于他在首选项中设置的内容)。@DirkRoten我尝试了UILocalNotification,但它仅在用户单击通知消息操作时在后台通知应用程序。啊,您实际上希望应用程序在正确的时间启动。你的问题并不完全清楚。想知道你的用例是什么。无论如何,下面的答案是正确的,除非你是一个VOIP应用程序,否则无法完成。“即使是无声推送通知也无法唤醒你的应用程序。”是的,他们可以,收到静默推送通知的应用程序在收到该通知后可以执行一些后台活动。静默推送的问题是,它们的交付时间可能会延迟几个小时。你是对的@Potasiumpermanganate,但当应用程序被终止(如我所述,通过在多任务中刷起)或未运行/终止时,除了推送套件通知(没有通知可以唤醒您的应用。)