2017-02-06 2 views
0

Ich habe eine App mit Swift für IOS 10.2 entwickelt. Ich benutze Apple Push Notification vom Server. In dieser App benutze ich UserDefaults für Benutzereinstellungen.
Ich will das Wenn der Benutzer Nachrichten des Tages erhalten möchte, zeigt meine Anwendung die Push-Benachrichtigung für die Nachrichtenkategorie an. Als Ergebnis Kann ich die Push-Benachrichtigung verwalten, bevor ich sie dem Benutzer zeige?
Muss ich die Einstellungen auf dem Server behalten? Irgendein Vorschlag ? Vielen Dank.Swift Cancel Push Notification Vor der Anzeige

+0

Wenn Sie verhindern möchten, dass die Benachrichtigungen angezeigt werden, wenn der Benutzer die Benachrichtigungen auf Ihrer Einstellungsseite deaktiviert hat. Vielleicht könnten Sie die Methode unregisterForRemoteNotifications von der freigegebenen UIApplication verwenden? Dies verhindert, dass Benachrichtigungen angezeigt werden, selbst wenn der Server sie sendet. Sie können die Logik in der applicationDidFinishLaunching-Methode hinzufügen, um zu überprüfen, ob der Benutzer registriert sein sollte oder nicht – DatForis

Antwort

0

Apple hat die Notification Service Extension in iOS 10 eingeführt. Sie können diese Erweiterung verwenden, um den Inhalt der von APNS gesendeten Benachrichtigung zu ändern. Mit dieser Erweiterung können Sie Bild-/Video-/Gif-Inhalte herunterladen, bevor Sie sie dem Benutzer zeigen oder den Inhalt der Benachrichtigung wie Titel, Untertitel oder Beschreibung ändern. Sie können die Benachrichtigung jedoch nicht vollständig stornieren.

Wenn Sie die Benachrichtigungseinstellungen in Suite UserDefaults (mithilfe von AppGroups) speichern, haben Sie Zugriff auf diese Einstellungen in Ihrer Notification Service-Erweiterung und nach dem Lesen der Einstellungen können Sie den Inhalt der Benachrichtigung in einen allgemeinen ändern Benachrichtigungs- und API verwenden, um die Benachrichtigungseinstellungen an Ihren externen Server zu senden und diese bestimmte Benachrichtigung an den Client zu senden. Aber ja, die Logik des Abbrechens/Stoppens einer bestimmten Benachrichtigung muss auf dem Server geschrieben sein.

Hoffe das hilft dir.