ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Frameworkモバイル開発者ガイド
11g リリース2 (11.1.2.4.0)
B70750-02
  目次へ移動
目次

前
 
次
 

16 プッシュ通知

この章では、ADFモバイル・アプリケーションにおけるプッシュ通知メッセージの登録、およびそれらの処理方法を説明します。

この章には次の項が含まれます:

16.1 プッシュ通知の概要

プッシュ通知は、サーバーなどの外部ソースからモバイル・デバイス上のアプリケーションに送信される通知です。これらは、アプリケーションの状態とユーザー設定に応じて、アラート・メッセージやバナーとして表示されます。図16-1は、iOSデバイスにおけるプッシュ通知アラートを示しています。

図16-1 プッシュ通知

アラート・メッセージ。

通知を受信したユーザーは、アプリケーションを起動するか、その通知を無視できます。この場合、アプリケーションはアクティブ化されません。通知のアラート・メッセージとともに、短く特徴的な音が鳴る場合もあります。

16.1.1 プッシュ通知の動作

プッシュ通知を受信するには、アプリケーションを通知サービスに登録する必要があります。登録が成功すると、通知サービスからアプリケーションにトークンが発行されます。アプリケーションでは、このトークンを(リモート・サーバー上の)プロバイダと共有します。これにより、プロバイダから、通知サービスを通じてアプリケーションに通知を送信できるようになります。ADFモバイルでは、アプリケーションによって提供された登録構成を使用して、そのアプリケーションのかわりに登録を行います(第16.2項「ADFモバイル・アプリケーションに対するプッシュ通知の有効化」を参照)。登録は、ADFモバイル・アプリケーションが起動するたびに、トークンの有効性を保証する目的で行われます。登録が成功すると、ADFモバイルでは、プラットフォーム固有の通知サービスから取得したトークンをプロバイダと共有します。iOSの場合、この通知サービスはApple Push Notification Service (APNs)です。Google Cloud Messaging (GCM) for Androidでは、Androidデバイスにインストールされたアプリケーション用の通知サービスが提供されます。

16.1.2 アプリケーションの状態に応じたADFモバイル・アプリケーションによる通知の表示

ADFモバイル・アプリケーションでは、その状態にかかわらずプッシュ通知を受信できます。これらのメッセージは、アプリケーションがフォアグラウンドで実行されていなくても表示される場合があり、その表示形式はADFモバイル・アプリケーションの状態とユーザー設定によって異なります。表16-1では、iOSオペレーティング・システムで、ADFモバイル・アプリケーションの状態に応じて、どのようにプッシュ通知が処理されるかを説明します。

表16-1 iOSデバイスにおけるプッシュ通知の処理

状態 アクション

ADFモバイル・アプリケーションはインストールされているが、実行されていない。

通知メッセージが登録済の通知スタイル(なし、バナーまたはアラート)で表示されます。ユーザーがメッセージをタップ(バナー・スタイルの通知の場合)するか、アクション・ボタンをタッチ(メッセージがアラートとして表示される場合)すると、ADFモバイル・アプリケーションが起動し、アプリケーション通知ハンドラが呼び出されます。

ADFモバイル・アプリケーションがバックグラウンドで実行されている。

通知メッセージが登録済の通知スタイル(なし、バナーまたはアラート)で表示されます。ユーザーがメッセージをタップ(バナー・スタイルの通知の場合)するか、アクション・ボタンをタッチ(メッセージがアラートとして表示される場合)すると、ADFモバイル・アプリケーションが起動し、アプリケーション通知ハンドラが呼び出されます。

ADFモバイル・アプリケーションがフォアグラウンドで実行されている。

通知メッセージは表示されません。アプリケーション通知ハンドラが呼び出されます。


iOSおよびAndroidプラットフォームでは、アプリケーションがフォアグラウンドで実行されていない場合、そのアプリケーションに関連付けられているすべてのプッシュ通知メッセージが、iOS Notification CenterやAndroidデバイス上の通知ドロワーなど、特定の場所に格納されます。

16.2 ADFモバイル・アプリケーションに対するプッシュ通知の有効化

次のタスクを実行することで、プッシュ通知を有効にできます。

  1. アプリケーション・コントローラ・プロジェクトで、アプリケーション・ライフサイクル・イベント・リスナー(ALCL)・クラスを登録します。詳細は、第5.3項「ADFモバイル・アプリケーションの基本情報の設定」および第5.6項「ライフサイクル・イベント・リスナーについて」を参照してください。

  2. ALCLにoracle.adfmf.application.PushNotificationConfigインタフェースを実装します。このインタフェースによって、プッシュ通知の登録構成が提供されます。

    PushNotificationConfigインタフェースのgetNotificationStyleおよびgetSourceAuthorizationIDメソッドをオーバーライドおよび実装します。getNotificationStyleメソッドを使用すると、iOS設定アプリケーションごとに、通知のスタイルを設定できます。getSourceAuthorizationIDメソッドを使用すると、ADFモバイル・アプリケーションへのメッセージの送信を許可されたアカウントのGoogleプロジェクトIDを入力できます。詳細は、Oracle Fusion Middleware Oracle ADFモバイルJava APIリファレンスを参照してください。

  3. アプリケーション・コントローラ・プロジェクトで、プッシュ通知イベントを処理するプッシュ通知リスナー・クラス(NativePushNotificationListenerなど)を作成します。このクラスには、イベント・リスナーを定義するoracle.adfmf.framework.event.EventListenerインタフェースを実装する必要があります。oracle.adfmf.framework.event.EventListenerインタフェースの詳細は、Oracle Fusion Middleware Oracle ADFモバイルJava APIリファレンスを参照してください。

    通知を処理するためのonOpenおよびonMessageメソッドを上書きおよび実装します。プッシュ通知サービスへの登録が成功すると、ADFモバイルでは、アプリケーション開発者がプロバイダと共有する必要がある登録トークンを使用して、onOpenをコールします。通知サービスへの登録時にエラーが発生した場合、この登録トークンはnullオブジェクトになります。

    ADFモバイルでは、アプリケーションが通知を受信するたびに、通知ペイロードを使用してonMessageメソッドをコールします。

  4. ALCLクラスのstartメソッド内に、ネイティブ・プッシュ通知イベントのソースを表すEventSourceオブジェクトを作成します。

    EventSource evtSource =EventSourceFactory.getEventSource(NativePushNotificationEventSource.NATIVE_PUSH_NOTIFICATION_REMOTE_EVENT_SOURCE_NAME);
    
  5. プッシュ通知リスナー・クラスのオブジェクトを作成し、イベント・ソースに追加します。

    evtSource.addListener(new NativePushNotificationListener());
    

16.3 プッシュ通知ペイロードについて

ADFモバイルでは、JSON形式のペイロードに対して、次のキーを尊重します。