ホームページ >バックエンド開発 >PHPチュートリアル >GCM 通知が iOS バックグラウンド モードで受信されないのはなぜですか?

GCM 通知が iOS バックグラウンド モードで受信されないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-20 15:27:02746ブラウズ

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

GCM 通知が iOS バックグラウンド モードで受信されない

アプリが背景。これにはいくつかの要因が考えられます。この問題とその解決策の分析は次のとおりです。

問題 1: 通知がバックグラウンドで受信されない

  • GCM 通知は通常、データ メッセージとして iOS デバイスに配信されます。 。アプリがフォアグラウンドにない限り、これらのメッセージは通知領域に表示されません。
  • これを解決するには、PHP スクリプトを変更して、プッシュ通知を コンテンツ利用可能な メッセージとして送信します。これらのメッセージは、アプリがバックグラウンドにある場合でも配信を優先します。

問題 2: 「GCM に接続できませんでした」エラー

  • 試行時バックグラウンドで通知を受信しようとすると、「GCM に接続できませんでした」というエラーが表示されます。このエラーは、メッセージを受信するには GCM サービスが実行されている必要があるために発生します。
  • AppDelegate.m ファイル、特に「applicationDid becomeActive」と 「applicationDidEnterBackground」 に適切な接続処理が実装されていることを確認してください。

PHP コード ソリューション

PHP スクリプトに次の変更を追加します。

<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 コード ソリューション

iOS 側での変更は必要ありませんが、GCM サービスを正しく実装するには、GCM ドキュメントに記載されている指示に従っていることを確認してください。

追加のヒント

  • プッシュ通知テスト サービスを使用して、メッセージが適切に形成され配信されていることを確認します。
  • iOS デバイスがアクセス許可を付与しているかどうかを確認してくださいプッシュ通知を受信するには、プッシュ通知を受信します。
  • その他の問題が発生した場合は、GCM ドキュメントを参照するか、GCM コミュニティ フォーラムでサポートを求めてください。

以上がGCM 通知が iOS バックグラウンド モードで受信されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。