Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 确定当应用程序处于后台状态时,是否点击通知横幅或通知中心以启动应用程序_Ios_Push Notification - Fatal编程技术网

Ios 确定当应用程序处于后台状态时,是否点击通知横幅或通知中心以启动应用程序

Ios 确定当应用程序处于后台状态时,是否点击通知横幅或通知中心以启动应用程序,ios,push-notification,Ios,Push Notification,我已经检查了许多线程,并确定应用程序是否在收到通知后启动。 我只想在用户点击通知时处理推送通知。 我无法找出调用应用程序:didReceiveMemoteNotify:fetchCompletionHandler:的原因。 当应用程序处于后台时,如何检查此方法是在点击通知时调用的,还是直接从推送调用的 谢谢。这里是推送通知的几个步骤 - (void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionar

我已经检查了许多线程,并确定应用程序是否在收到通知后启动。 我只想在用户点击通知时处理推送通知。 我无法找出调用
应用程序:didReceiveMemoteNotify:fetchCompletionHandler:
的原因。 当应用程序处于后台时,如何检查此方法是在点击通知时调用的,还是直接从推送调用的


谢谢。

这里是推送通知的几个步骤

- (void)application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)userInfo {
    //No Need to store the push notification if it is in active or in closed state we can directly navigate to the screens

    NSLog(@"notification didReceive method called");

    if([app applicationState] == UIApplicationStateInactive) {
        //If the application state was inactive, this means the user pressed     an action button
        //Handle the code after push notification received  
    }
    else if ([app applicationState] == UIApplicationStateActive) {
        //Application is in Active state handle the push notification here
    }
}
1) 。当您的应用程序被终止时,既不处于活动状态,也不处于后台。在这种情况下,当您收到任何通知时,将调用
didfishlaunchingwithoptions

2) 。当您的应用处于活动状态或处于后台时,在这种情况下将调用
didReceiveMemoteNotification:fetchCompletionHandler**
。您必须在此处标识应用程序状态,如下所示

if ( application.applicationState == UIApplicationStateActive ) {  
    // app was already in the foreground
}
else {
    // app was just brought from background to foreground
}

事实上,当我们在后台收到推送通知,而用户并没有点击通知时,就会调用这个方法。我想区分它们。我想识别用户点击通知横幅的行为。当应用程序被终止时,我们可以将用户的点击标识为DidReceiveEmotentification:fetchCompletionHandler在非活动状态下被调用,但后台状态并非如此。