2017-10-28 1 views
0

Ich arbeite an einer Anwendung, die eine UNNotificationServiceExtension verwendet. Die meiste Zeit (etwa 90%) läuft meine Erweiterung korrekt, macht eine Verbindung zum Backend und zeigt dann die Benachrichtigung an. Aber manchmal scheint die Erweiterung überhaupt nicht zu laufen und das System zeigt die ursprüngliche Nachricht in der Benachrichtigung an. Warum passiert das? Alle Benachrichtigungen enthalten definitiv den mutable-content Schlüssel, der auf 1 gesetzt wird.UNNotificationServiceExtension läuft manchmal nicht

Antwort

0

Ich laufe auf das gleiche Problem, als ich UNNotificationServiceExtension implementierte. Mein Problem war in der Zeit Einschränkung, dass zusätzliche Inhalte

gegeben

Here is the link

Ihre Erweiterung zu laden, hat eine begrenzte Menge an Zeit (nicht mehr als 30 Sekunden) den Inhalt zu ändern und den Contentblock auszuführen. Wenn Sie diesen Block nicht rechtzeitig ausführen, ruft das System die Methode extensionTimeWillExpire() der Erweiterung auf, um Ihnen eine letzte Möglichkeit zum Ausführen des Blocks zu geben. Ist dies nicht der Fall, zeigt das System dem Benutzer den ursprünglichen Inhalt der Benachrichtigung mit an.

Wenn Sie sicherstellen wollen, dass es das gleiche Problem ist, können Sie folgende Methode implementieren und Inhalt in gewisser Weise ändern

func serviceExtensionTimeWillExpire() 

Durch das Hinzufügen Menge von Sekunden UNNotificationServiceExtension am Leben ist, fand ich heraus, dass manchmal System don Gib dir nicht mal diese 30 Sekunden.

+0

Zuerst habe ich das gleiche, aber nach dem Hinzufügen einiger Protokollierung kann ich sehen, dass der Anruf didReceive nicht protokolliert wird. Entweder wird die Methode überhaupt nicht aufgerufen, oder sie wird beendet, noch bevor ich eine Zeichenfolge in eine Datei schreiben kann. – hedunky

Verwandte Themen