当应用程序被强制退出时,函数 application:didReceiveRemoteNotification:fetchCompletionHandler
似乎没有被调用。我的印象是无论应用程序处于什么状态都会调用该函数,但似乎只有当应用程序已经在后台运行时才会调用它。如果应用程序尚未使用新的 iOS 7 远程通知后台模式运行,是否有办法在后台唤醒该应用程序?
最佳答案
application:didReceiveRemoteNotification:fetchCompletionHandler:
即使应用程序暂停、根本不运行、后台运行或处于事件状态,也会被调用。还值得注意的是,该方法仅适用于 iOS 7。这是 apple documentation .
但是,如果应用程序被强制关闭(即通过应用程序切换器终止),应用程序将不会启动。(参见 SO answer )
编辑: 我在 iOS 7.1 上再次检查了这个问题,看他们是否修复了这个问题,但情况仍然如此,如果应用程序被手动终止,应用程序将不会被唤醒并且 application:didReceiveRemoteNotification :fetchCompletionHandler:
不会被调用
收到推送时,应用仅在“需要时”被唤醒以调用 application:didReceiveRemoteNotification:fetchCompletionHandler:
方法(即您必须在内部设置“content-available”标志推送通知负载。参见 SO answer )。如果用户随后通过点击通知打开应用,将再次调用该方法。
编辑:还没有在 iOS 8 上检查过这个。还有其他人吗?
关于ios - 应用程序 :didReceiveRemoteNotification:fetchCompletionHandler Not Called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18856204/