我正在尝试在后台模式下收到通知。我不希望用户在收到通知中的警报时启动我的应用程序。但似乎iOS没有向回调函数didReceiveRemoteNotification发送通知: 有什么投入?
为了在后台模式下接收推送,我需要执行哪些特殊操作。
仅供参考:我也尝试使用voip后台模式,但仍然没有!
基本上我希望我的应用程序在不启动应用程序的情况下接收通知,并在应用程序在后台运行时执行某些操作。
答案 0 :(得分:5)
但似乎iOS没有将通知发送到回调函数didReceiveRemoteNotification:
这是真的。如果您的应用位于后台,则除非用户通过与通知提醒进行交互来实际启动应用,否则您不会收到有关传入推送通知的通知。
基本上我希望我的应用能够收到通知,而无需用户启动我的应用/用户干预,并在后台运行时执行某些操作。
那是不可能的。
答案 1 :(得分:1)
可以获得远程通知并被唤醒。但了解当前实现及其受应用程序行为的影响非常重要。所有事情都可能在Apple下发生变化。 在撰写本文时,以下是您需要知道的内容(前2位大多数人显然都知道):
application:didReceiveRemoteNotification
或更优先application:didReceiveRemoteNotification:fetchCompletionHandler
application:didReceiveRemoteNotification:fetchCompletionHandler
,您更好会在30秒内调用fetchCompletionHandler或您的应用终止。如果您没有使用fetchCompletionHandler实现该方法,那么您可能只能从系统 IF 接收徽章/警报,并将其放入APN邮件的内容中。否则,你什么也看不见。现在,抓住了。当前iOS 配置文件您的应用程序,然后确定是否实际唤醒您的应用程序。如果你花了很多时间测试APN,它最终会让你的应用程序成为一个糟糕的公民,它不会唤醒你的应用程序(除非你至少插上电源)。它将等到您的应用程序随后启动(您可以鼓励用户通过APN消息中的系统徽章/警报进行),然后将该远程通知放入密钥{{1}下的did / willFinishLaunchingWithOptions launchOptions中}