2017-01-17 2 views
3

Ich speichere gerade ein Flag, um Benachrichtigungen in meinen Benutzereinstellungen zu deaktivieren. Ich benutze diese Flagge in meinem didReceieveRemoteNotifications, um die Benachrichtigung anzuzeigen oder zu überspringen, die hereinkommt. Jedoch, wenn meine Anwendung im Hintergrund ist, zeigt es noch und ich glaube, dass ich alle meine Methoden richtig eingerichtet habe und es nicht getroffen wird. Gibt es eine Möglichkeit, diese Benachrichtigung zu erfassen, während sich die App im Hintergrund befindet und sie nicht anzeigt?iOS-Benachrichtigung überspringen oder deaktivieren, wenn App im Hintergrund ist

NSNumber* enabled = [Helper getBooleanPreference:[Config subscriptionsEnabled]]; 

     if(enabled == nil || [enabled integerValue] == 1) { 
      completionHandler(UIBackgroundFetchResultNewData); 
     } 

Antwort

2

Von Apple documentation

Die von einer stillen Benachrichtigung zu senden erfordert eine spezielle Konfiguration der Nutzlast-Benachrichtigung. Wenn Ihre Payload nicht ordnungsgemäß konfiguriert ist, wird die Benachrichtigung möglicherweise dem Benutzer angezeigt, anstatt sie im Hintergrund an Ihre App zu senden. In Ihrer Nutzlast, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:

Die aps Wörterbuch der Nutzlast müssen den Inhalt verfügbare Schlüssel mit einem Wert von 1

Die aps Wörterbuch der Nutzlast beinhaltet nicht die Alarm enthalten muss, Ton oder Ausweistasten.

So Ihre Push sollte 1 inhalt verfügbar mit dem Wert enthalten und nicht Alarm enthält, Ton oder Abzeichen Tasten. In diesem Fall müssen Sie UILocalNotification anzeigen, wenn Sie den Benutzer benachrichtigen möchten.

+0

Wie würde das überhaupt funktionieren, wenn ich die Alarmdaten überhaupt verwenden möchte? –

+0

Ich beschrieb Ihnen die einzige Möglichkeit, wie Sie Push-Benachrichtigungen innerhalb der App erhalten und entscheiden können, ob Sie sie dem Benutzer zeigen müssen oder nicht. Wenn Sie einige Daten im Push erhalten möchten, können Sie sie über die benutzerdefinierte Payload https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Creating theNotificationPayload.html#//apple_ref/doc/ abrufen. UID/TP40008194-CH10-SW1. – Sander

+0

WICHTIG Hintergrundaktualisierungsbenachrichtigungen sind nicht dazu gedacht, Ihre App über schnelle Aktualisierungsvorgänge hinaus im Hintergrund wach zu halten, noch sind sie für Updates mit hoher Priorität gedacht. APNs behandeln Hintergrundaktualisierungsbenachrichtigungen mit niedriger Priorität und können ihre Zustellung insgesamt drosseln, wenn die Gesamtzahl zu hoch wird. Die tatsächlichen Grenzen sind dynamisch und können sich je nach Bedingungen ändern, aber versuchen Sie nicht, mehr als ein paar Benachrichtigungen pro Stunde zu senden. –

Verwandte Themen