サイレント通知

improve this page | report issue

概説

サイレント通知は、アラートを表示しない、あるいはユーザーを妨げない通知です。 サイレント通知が到着すると、アプリケーションをフォアグラウンドに移行せずに、アプリケーションの処理コードがバックグラウンドで実行されます。 現在、サイレント通知は、バージョン 7 以降の iOS デバイスでサポートされています。 バージョン 7 より低いバージョンの iOS デバイスにサイレント通知が送信された場合、アプリケーションがバックグラウンドで実行されていると、通知は無視されます。 アプリケーションがフォアグラウンドで実行されていると、通知のコールバック・メソッドが呼び出されます。

サイレント・プッシュ通知の送信

通知を準備して送信します。 詳しくは、プッシュ通知の送信を参照してください。

iOS 用にサポートされている 3 つのタイプの通知は、DEFAULTSILENT、および MIXED という定数で表されます。 タイプが明示的に指定されない場合は DEFAULT タイプとみなされます。

MIXED タイプの通知の場合、デバイスにメッセージが表示され、一方、バックグラウンドではアプリケーションが起動してサイレント通知を処理します。 MIXED タイプの通知のコールバック・メソッドは、2 回呼び出されます。サイレント通知がデバイスに到達したときと、通知をタップしてアプリケーションが開かれたときです。

要件に応じて、MobileFirst Operations Console →「 [ご使用のアプリケーション] 」→「プッシュ」→「通知の送信」→「iOS カスタム設定」で、適切なタイプを選択します。

注: 通知がサイレントの場合、アラートサウンド、およびバッジのプロパティーは無視されます。

MobileFirst Operations Console

Cordova アプリケーションでのサイレント・プッシュ通知の処理

JavaScript プッシュ通知のコールバック・メソッド内で、以下のステップを実行する必要があります。

  1. 通知タイプをチェックします。 例えば、次のとおりです。

    if(props['content-available'] == 1) {
         //Silent Notification or Mixed Notification. Perform non-GUI tasks here.
    } else {
         //Normal notification
    }
    
  2. 通知がサイレントまたは混合の場合は、バックグラウンド・ジョブの実行後に WL.Client.Push.backgroundJobDone API を呼び出します。

ネイティブ iOS アプリケーションでのサイレント・プッシュ通知の処理

サイレント通知を受け取るには、以下のステップに従う必要があります。

  1. リモート通知の受信時にバックグラウンド・タスクを実行するアプリケーション機能を有効にします。
  2. content-available キーが 1 に設定されているかどうかを検査することで、通知がサイレントであるかどうかを調べます。
  3. 通知の処理が終了したら、handler パラメーターのブロックをすぐに呼び出す必要があります。そうしないと、アプリケーションは強制終了されます。 アプリケーションは通知の処理を最大 30 秒待ち、指定の完了ハンドラー・ブロックを呼び出します。
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on March 15, 2018