C++ を使用して Firebase Cloud Messaging クライアント アプリを設定する

クロスプラットフォーム対応の Firebase Cloud Messaging クライアント アプリを C++ で記述するには、Firebase Cloud Messaging API を使用します。 Android と iOS それぞれに必要な設定を追加すれば、両方のプラットフォームで C++ SDK を動作させることができます。

Firebase と FCM SDK を設定する

Android

  1. FCM クライアント アプリには Android 2.3 以降を実行している端末が必要です。また、Google Play 開発者サービス アプリケーションがインストールされていて、Android Studio 1.4 以降を使用して Gradle で構築されている必要があります。
  2. まだ追加していない場合は、Firebase を C++ プロジェクトに追加します
  3. Android Studio でアプリレベルの build.gradle ファイルに FCM との依存関係を追加します。
    dependencies {
         compile 'com.google.firebase:firebase-messaging:10.0.1'
    }
  4. 静的ライブラリの libapp.alibmessaging.aC++ SDK からリンクします。アプリケーションの AndroidManifest.xml に次のコードを追加します。
    <service android:name="com.google.firebase.messaging.cpp.ListenerService">
      <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
      </intent-filter>
    </service>
    <!-- This service must be in the same process as the ListenerService -->
    <service android:name="com.google.firebase.messaging.cpp.RegistrationIntentService"
             android:exported="false" >
    </service>
    <service android:name="com.google.firebase.messaging.cpp.FcmInstanceIDListenerService">
      <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
      </intent-filter>
    </service>
    
    ListenerService を使用して受信メッセージが SDK に送られ、その後 SDK からアプリにメッセージが渡されます。FcmInstanceIDListenerServiceRegistrationIntentService はそれぞれ、登録トークンのリクエストと登録に使用されます。ListenerServiceRegistrationIntentService は、FCM ネイティブ ライブラリを実行するアクティビティと同じプロセスにある必要があります。既定では、これらは同じプロセスで実行されますが、アクティビティまたは一方のサービスのプロセスを指定する場合は、同じ処理をもう一方でも行う必要があります。
  5. JNI 環境とアクティビティを引数で渡し、Firebase App オブジェクトを作成します。
    app = ::firebase::App::Create(::firebase::AppOptions(), jni_env, activity);
    
  6. firebase::messaging::Listener インターフェースを実装するクラスを定義します。
  7. アプリと構築済みリスナーを引数で渡し、Firebase Cloud Messaging を初期化します。
    ::firebase::messaging::Initialize(app, listener);
    
  8. Google Play 開発者サービスの SDK に依存するアプリについては、機能にアクセスする前に必ず、互換性のある Google Play 開発者サービスの APK が端末にインストールされているかチェックする必要があります。詳しくは、Google Play 開発者サービスの APK のチェック手順をご覧ください。

iOS

  1. 有効な APNs 証明書が必要です。まだお持ちでない場合は、APNs の SSL 証明書のプロビジョニング手順をご覧ください。
  2. まだ追加していない場合は、Firebase を C++ プロジェクトに追加します
  3. プロジェクトの Podfile に FCM の依存関係を追加します。
    pod 'Firebase/Messaging'
  4. フレームワーク firebase.frameworkfirebase_messaging.frameworkC++ SDK から XCode プロジェクトにドラッグします。
  5. Firebase アプリ オブジェクトを作成します。
    app = ::firebase::App::Create(::firebase::AppOptions());
  6. firebase::messaging::Listener インターフェースを実装するクラスを定義します。
  7. アプリと構築済みリスナーを引数で渡し、Firebase Cloud Messaging を初期化します。
    ::firebase::messaging::Initialize(app, listener);

端末登録トークンにアクセスする

Firebase Cloud Messaging ライブラリの初期化の際に、クライアント アプリのインスタンス用に登録トークンがリクエストされます。アプリは OnTokenReceived コールバックで登録トークンを受け取ります。このトークンは firebase::messaging::Listener を実装するクラスで定義される必要があります。

その特定の端末をターゲットにする場合は、このトークンにアクセスする必要があります。

次のステップ

クライアント アプリを設定したら、Firebase でダウンストリーム メッセージやトピック メッセージを送信できる状態になります。詳細については、ダウンロードして実行可能なクイックスタート サンプルでこの機能に関するデモをご確認ください。

別のより高度な動作をアプリに追加するには、アプリサーバーからのメッセージの送信に関するガイドをご覧ください。

これらの機能を利用するには、サーバーの実装が必要です。

フィードバックを送信...