Wes*_*ick 23 objective-c apple-push-notifications ios ios7
application:didReceiveRemoteNotification:fetchCompletionHandler当应用程序强行退出时,似乎不会调用该函数.我的印象是,无论应用程序处于什么状态,都会调用该函数,但似乎只有在应用程序已在后台运行时才会调用它.有没有办法在后台唤醒应用程序,如果它尚未使用新的iOS 7远程通知后台模式运行?
nvr*_*rst 51
application:didReceiveRemoteNotification:fetchCompletionHandler:即使应用程序被暂停,根本没有运行,后台运行或活动,也会被调用.另外值得注意的是,该方法仅适用于iOS 7.这是苹果文档.
但是,如果应用程序被强行关闭(即通过使用应用程序切换器进行查杀),该应用程序将无法启动.(参见答案)
 编辑:我在iOS 7.1上再次检查了这一点,看看他们是否修复了这个问题,但仍然存在这样的情况:如果手动杀死应用程序,应用程序将不会被唤醒并且application:didReceiveRemoteNotification:fetchCompletionHandler:不会被调用
当接收到推送时,应用程序仅在"如果需要"时才被唤醒以调用该application:didReceiveRemoteNotification:fetchCompletionHandler:方法(即,您必须在推送通知有效负载内设置"content-available"标志.参见SO回答).如果用户然后通过点击通知打开应用程序,则将再次调用该方法.
编辑:没有在iOS 8上检查过这个.还有其他人吗?
kid*_*kid 24
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions {
    //Remote Notification Info
    NSDictionary * remoteNotifiInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
    //Accept push notification when app is not open
    if (remoteNotifiInfo) {
       [self application:application didReceiveRemoteNotification: remoteNotifiInfo];
    }
    return YES;
}