iOS - Wie kann ich sagen, ob eine lokale Benachrichtigung meine App dazu veranlasst hat, den Vordergrund aufzurufen?

StackOverflow https://stackoverflow.com//questions/23009348

Frage

Ich habe Code innerhalb meiner App-Delegierten

generasacodicetagpre.

-Methode zum Anzeigen eines uialertviews für diese lokale Benachrichtigung, wann immer meine App im Vordergrund ist.

Wenn sich meine App im Hintergrund befindet, wenn die lokale Benachrichtigung der Benutzer ankommt, wird der Benutzer mit der Benachrichtigung präsentiert und kann die App starten, indem Sie sie auswählen. In diesem Fall kommt meine App in den Vordergrund, den meine App-Delegierte

generasacodicetagpre.

wird aufgerufen. Danach wird meine didangecreivelocalnocification-Methode wieder aufgerufen, wodurch ein uialertview wieder erscheinen wird. Aber der Benutzer hatte dennoch bereits dennoch, während die App im Hintergrund war, also idealerweise möchte ich diesen Alarm nicht wieder anzeigen.

Ich kann sehen, dass, wenn eine App aufgrund einer lokalen Benachrichtigung eingeführt wird, dann innerhalb der

generasacodicetagpre.

-Methode Sie können die Startoptionen für einen Schlüssel inspizieren

generasacodicetagpre.

zu wissen, ob eine lokale Benachrichtigung Ihre App zum Start verursacht hat oder nicht, aber es scheint keine solche Methode zu ermitteln, um dies herauszufinden, wenn Sie gerade vom Benutzer wieder in den Vordergrund zurückgebracht werden, indem der Benutzer mit einer lokalen Benachrichtigung interagiert. .

prüfen, ob mein anwendungsmethode kürzlich aufgerufen wurde oder nicht in letzter Zeit eine hackige Weise um dieses Problem scheint, oder vielleicht etwas Ähnliches der in dieser Frage angegebenen Antworten "Isoios Wie man beendet, läuft Vordergrund oder Hintergrund? "wird mir erlauben Überprüfen Sie das

generasacodicetagpre.

von meiner

generasacodicetagpre.

-Methode. Hoffentlich wird es früh genug empfangen, dass mein Anwendungstat in diesem Fall immer noch nicht auf uiapplicationstateActive eingestellt wird.

oder gibt es dafür bessere Lösungen?

jubeln

War es hilfreich?

Lösung

In Appdelegate können Sie den Status der App prüfen, wenn die Anwendung Benachrichtigung empfängt

generasacodicetagpre.

Andere Tipps

wollte nur sagen, dass ich gerade bemerkt habe, dass die vorgeschlagene Antwort der Überprüfung des Anwendungsstaaten ein bisschen einen schlechten Nebeneffekt hat, dass es irgendetwas aufhören wird, was passiert, während das Benachrichtigungszentrum offen ist und über der Spitze Ihrer App ist. Persönlich wollte ich nicht, dass ich meine Alarmansicht von der Erstellung anhält, also habe ich eine Alternative gefunden.

Grundsätzlich zeichne ich nur das Datum auf, wenn meine App zuletzt gestartet oder im Vordergrund geführt wurde, und dann, wenn ich meine Benachrichtigungsdaten testen, vergleiche ich ihr Feuervorgabe mit dem ApplastStarted-Datum und zeigt nur die Benachrichtigung an, wenn er aufgetreten ist, da in der Vordergrund meine App aufgetreten ist. Dies behebt das Problem beim Öffnen der App von einer Benachrichtigung, ermöglicht es jedoch auch, dass die Warnungen angezeigt werden, wenn die App nicht aktiv ist (dh hinter Notifizierungszentrum).

Ich habe noch keine Probleme mit diesem Ansatz erfahren, obwohl ich jedoch nur von heute ausprobiert habe, also hatte es nicht viel Tests.

Ich dachte nur, würde ich es aufnehmen, wenn niemand andere ähnliche Anforderungen hatte.

Swift 4-Lösung:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top