Ios 应用程序处于后台时收到的远程通知不';t hit";DidReceiveEmotentification-fetchCompletionHandler“;如果应用程序被杀死,方法是什么?

Ios 应用程序处于后台时收到的远程通知不';t hit";DidReceiveEmotentification-fetchCompletionHandler“;如果应用程序被杀死,方法是什么?,ios,objective-c,push-notification,Ios,Objective C,Push Notification,我们已经实现了以下方法来接收远程通知,并启用了“项目功能下的后台获取和远程通知”。方法正在命中,即使应用程序位于前台或后台。但“若应用程序被终止,在后台收到通知,则不会调用下面的方法”。如何解决这个问题 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackground

我们已经实现了以下方法来接收远程通知,并启用了“项目功能下的后台获取和远程通知”。方法正在命中,即使应用程序位于前台或后台。但“若应用程序被终止,在后台收到通知,则不会调用下面的方法”。如何解决这个问题

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// Some storage code
}

提前感谢您的帮助

终止应用程序会间接禁用推送通知

这是因为如果用户杀死应用程序,除非用户点击主屏幕上的应用程序图标

这是不幸的,因为大多数用户不知道杀掉应用程序(这很有趣!)会产生这些恼人的副作用。

这是来自苹果的:

在大多数情况下,用户强制退出应用程序后,系统不会重新启动应用程序。一个例外是位置应用程序,在iOS 8和更高版本中,在用户强制退出后会重新启动。但在其他情况下,用户必须显式启动应用程序或重新启动设备,然后应用程序才能由系统自动启动到后台


当应用程序被终止时。推送通知将不支持。因为你的应用程序不再运行。因此,无法接收推送通知

如果应用程序未处于活动状态,则不会调用此方法。相反,如果用户从通知中启动应用程序,应用程序将在didFinishLaunchingWithOptions中有一个有效负载,在这里您可以处理通知

如果应用程序未从通知中打开,您将无法获得此信息


你到底想干什么?您可以让应用程序询问后台时间,并根据需要执行代码

不是真的。如果您启用了远程通知后台模式,则当远程通知到达时,系统将启动您的应用程序并将其置于后台状态。感谢您的回复,如果后台模式自动启动应用程序并将其置于后台,则表示为什么它没有点击“DidReceiveMemoteNotification”方法我猜你只是有错误的测试场景。如果通过在app manager中向上滑动的方式终止应用程序,您将不会得到
-应用程序:DidReceiveMemoteNotify:fetchCompletionHandler:
回调。如何终止应用程序进行测试?Docs说:(…)但是,如果用户强制退出,系统不会自动启动你的应用程序。在这种情况下,用户必须重新启动应用程序或重新启动设备,然后系统才会尝试再次自动启动应用程序。