2016-09-21 3 views
0

In meiner App kann der Benutzer an Remoteereignissen teilnehmen. Wenn der Benutzer einem Ereignis beitritt, erstelle ich ein Ereignis im nativen iOS-Kalender. Ich weiß, dass ich dieses Ereignis in meiner App bearbeiten und löschen kann, wenn die App ausgeführt wird.Bearbeiten eines Kalenderereignisses, wenn sich die App im Hintergrund oder im Kill-Modus befindet

Jetzt habe ich eine Anforderung zum Bearbeiten oder Löschen des oben genannten Ereignisses basierend auf einer Push-Benachrichtigung. Das bedeutet, wenn eine Änderung mit dem Remote-Ereignis eintritt, erhält meine App eine Push-Benachrichtigung. Also, ich möchte wissen, kann ich das native Kalenderereignis bearbeiten oder löschen, wann immer die Push-Benachrichtigung erhalten (Es kann App im Hintergrund oder getötet werden).

+0

Haben Sie es mit dem Push-Kit versucht? – Hasya

+0

@Hasya Ich habe über Push-Kit gelesen, aber es ist jenseits meiner Projektumfang – sajaz

Antwort

0

Mit APN (im Gegensatz zu PK) müssen Sie Hintergrundbenachrichtigungen in den Berechtigungen Ihrer App aktivieren. Senden Sie die Benachrichtigungen mit content-available : 1 im aps Wörterbuch der Nutzlast. Implementieren Sie die neue (er) Delegate-Methode zum Bearbeiten der Hintergrundverarbeitung von Benachrichtigungen im App-Delegaten. Beten Sie, dass iOS die App oft so oft im Hintergrund ausführt, dass die Funktion nicht fehlerhaft ist.

Es gibt keine Garantie, Verarbeitungszeit zu gewinnen, wenn Ihre App im Hintergrund läuft oder nicht ausgeführt wird. Benachrichtigungen können helfen, aber Apple gibt ausdrücklich an, dass es keine Garantien gibt. Ein bekanntes Szenario, in dem iOS die App nicht startet, um eine Benachrichtigung zu verarbeiten, ist, wenn die App zuletzt vom Benutzer getötet wurde (im Task-Switcher nach oben wischen).

Push-Kit-Nachrichten werden garantiert, um die App im Hintergrund zu wecken oder zu starten, aber die App muss eine VoIP-App sein, um sie zu verwenden.

Wenn Sie diese Route gehen, beachten Sie, dass sich Ihre App beim Start direkt im Hintergrund anders verhält. Sie können nicht davon ausgehen, dass ein Start immer mit der App im Active Zustand endet.

+0

Ich habe bereits Remote-Benachrichtigungen im Hintergrund Modi aktiviert. Aber gemäß Ihrer Antwort verstehe ich, dass App aufwachen sollte, um den Hintergrundprozess zu machen, und das ist nicht garantiert. Das bedeutet auch, dass ich dies nicht tun kann, wenn die App getötet wird. Außerdem läuft die App im Hintergrund, das Telefon ist jedoch gesperrt. – sajaz

+0

Wenn die App beendet wird, kann sie gestartet werden, um die Benachrichtigung zu verarbeiten. Oder vielleicht nicht. Ich weiß nicht, ob die Ereignis-API verfügbar ist, während ein Gerät gesperrt ist. Ich kenne die verwandten Konzepte, aber nicht die Details. – Avi

0

Ja, Sie können bearbeiten und löschen. Wenn Sie eine stumme Push-Benachrichtigung erhalten, wird Ihre App im Hintergrund aufgerufen. Sogar wir können mit der SQLite-Datenbank aktiv werden.

Sobald Sie also eine stumme Push-Benachrichtigung erhalten, planen Sie die lokale Benachrichtigung und benachrichtigen den Benutzer. Ihre App wird bis zu Ihrer lokalen Benachrichtigungs-Soundwiedergabe aufgerufen (max. 30 Sekunden).

Sie können auch weitere UI- und Logikfunktionen ausführen, wenn der Benutzer auf die lokale Benachrichtigung oder auf Schaltflächen der lokalen Benachrichtigung klickt.

Wenn Sie Ihr lokales Benachrichtigungsobjekt in NSUserDefault behalten, also wenn Ihr Gerät noch einen Neustart erhält, können Sie das lokale Benachrichtigungsobjekt von NSUserDefault in didFinishLaunchingWithOptions haben und weitere Dinge tun.

Verwandte Themen