Heim >Backend-Entwicklung >PHP-Tutorial >Warum werden GCM-Benachrichtigungen im iOS-Hintergrundmodus nicht empfangen?

Warum werden GCM-Benachrichtigungen im iOS-Hintergrundmodus nicht empfangen?

Susan Sarandon
Susan SarandonOriginal
2024-10-20 15:27:02752Durchsuche

Why Are GCM Notifications Not Being Received in iOS Background Mode?

GCM-Benachrichtigungen werden im iOS-Hintergrundmodus nicht empfangen

Push-Benachrichtigungen, die von GCM gesendet werden, werden möglicherweise nicht von iOS-Geräten empfangen, wenn sich die App im iOS-Hintergrundmodus befindet Hintergrund. Dies kann auf mehrere Faktoren zurückgeführt werden. Hier ist eine Analyse des Problems und seiner Lösung:

Problem 1: Benachrichtigungen werden nicht im Hintergrund empfangen

  • GCM-Benachrichtigungen werden normalerweise als Datennachrichten an iOS-Geräte übermittelt . Diese Nachrichten werden nicht im Benachrichtigungsbereich angezeigt, es sei denn, die App befindet sich im Vordergrund.
  • Um dieses Problem zu beheben, können Sie Ihr PHP-Skript so ändern, dass Push-Benachrichtigungen als Inhalt-verfügbare-Nachrichten gesendet werden. Diese Nachrichten priorisieren die Zustellung, auch wenn die App im Hintergrund läuft.

Problem 2: „Verbindung zum GCM konnte nicht hergestellt werden“ Fehler

  • Beim Versuch Um Benachrichtigungen im Hintergrund zu erhalten, erhalten Sie die Fehlermeldung „Verbindung zum GCM konnte nicht hergestellt werden.“ Dieser Fehler tritt auf, weil der GCM-Dienst ausgeführt werden muss, um Nachrichten zu empfangen.
  • Stellen Sie sicher, dass Sie in Ihrer AppDelegate.m-Datei die richtige Verbindungsbehandlung implementiert haben, insbesondere „applicationDidBecomeActive“ und „applicationDidEnterBackground“ Methoden, um eine Verbindung zu GCM herzustellen und aufrechtzuerhalten.

PHP-Code-Lösung

Fügen Sie die folgenden Änderungen zu Ihrem PHP-Skript hinzu:

<code class="php">$data = array(
    'message' => 'Hello World!',
    'body' => 'Hello World!',
);

$post = array(
    'registration_ids' => $ids,
    'data' => $data,
    'content_available' => true, // To trigger when iOS app is in background
    'priority' => 'high',
    'notification' => $data, // Send notification payload
);</code>

iOS-Codelösung

Auf der iOS-Seite sind keine Änderungen erforderlich. Stellen Sie jedoch sicher, dass Sie die Anweisungen in der GCM-Dokumentation befolgt haben, um den GCM-Dienst korrekt zu implementieren.

Zusätzliche Tipps

  • Verwenden Sie einen Push-Benachrichtigungstestdienst, um zu überprüfen, ob Ihre Nachrichten ordnungsgemäß formatiert und zugestellt werden.
  • Überprüfen Sie, ob Ihr iOS-Gerät die Berechtigung erteilt hat um Push-Benachrichtigungen zu erhalten.
  • Wenn Sie auf andere Probleme stoßen, lesen Sie die GCM-Dokumentation oder suchen Sie Hilfe in den GCM-Community-Foren.

Das obige ist der detaillierte Inhalt vonWarum werden GCM-Benachrichtigungen im iOS-Hintergrundmodus nicht empfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn