5

Wenn der Benutzer auf einer Remote-Benachrichtigung tippt, wird der folgende Rückruf im AppDelegate ausgelöst:Wie erkennen Benutzer klickte iOS Remote-Benachrichtigung?

-application:didReceiveRemoteNotification:fetchCompletionHandler:

in diesem Szenario wird Anwendung gestartet und der App-Status ist UIApplicationStateActive, die ich als Benutzer interpretiere actioned auf eine Remote-Benachrichtigung.

das Problem: Diese Methode wird auch aufgerufen, wenn eine Remote-Benachrichtigung eintrifft bekommen kann und App im Vordergrund mit inaktivem Zustand.

Beispiel: wenn Ansicht Benachrichtigungszentrum geöffnet ist (Swipe vom oberen Rand des Bildschirms nach unten) oder ein UIAlert ist offen. In beiden Fällen ist der Anwendungsstatus UIApplicationStateActive und es gibt keine Möglichkeit festzustellen, ob es sich um eine vom Benutzer durchgeführte Benachrichtigung oder einen System-Push handelt.

Q: Wie kann ich feststellen, ob der Rückruf didReceiveRemoteNotification auf den Benutzer antwortet, der auf die Remote-Benachrichtigung oder die Ankunft der Remote-Benachrichtigung klopft?

Antwort

1
UIApplicationState state = [application applicationState]; 
    if (state == UIApplicationStateActive) 
    { 
      //When your app is in foreground and it received a push notification 
    } 
    else if (state == UIApplicationStateInactive) 
    { 
      //When your app was in background and it received a push notification 
    } 

Auch wird didFinishLaunchingWithOptions aufgerufen werden, wenn die App nicht ausgeführt wurde und der Benutzer angezapft eine Benachrichtigung. Ich habe es nicht ausprobiert, aber ich kann davon ausgehen, dass Sie die Benachrichtigungsdetails von Optionen erhalten können.

+0

TX für die Antwort, es ist ein anderes Problem. Wenn sich App im Vordergrund befindet und das Benachrichtigungscenter geöffnet ist, befindet sich die App im Inaktiven Status. Jetzt, wenn 'didReceiveRemoteNotification' aufgerufen wird, kann es 2 Fälle sein: 1-User-Aktion auf eine Benachrichtigung in Notif Zentrum 2-Ankunft der neuen Push-Benachrichtigung. Problem ist, dass es keine Möglichkeit gibt, dieses 2 Szenario zu unterscheiden. –

Verwandte Themen