Cordova でのプッシュ通知の処理

improve this page | report issue

概説

iOS、Android、および Windows の Cordova アプリケーションでプッシュ通知を受け取り、プッシュ通知を表示できるようにするには、cordova-plugin-mfp-push Cordova プラグインを Cordova プロジェクトに追加する必要があります。 アプリケーションが構成されると、MobileFirst が提供する通知 API を使用して、デバイスの登録や登録抹消、タグへのサブスクライブやアンサブスクライブ、および通知の処理を実行できます。 このチュートリアルでは、Cordova アプリケーションでプッシュ通知を処理する方法について学習します。

注: ある問題のために、認証済み通知は、現在 Cordova アプリケーションではサポートされていません。 しかし、予備手段が用意されており、各 MFPPush API 呼び出しを WLAuthorizationManager.obtainAccessToken("push.mobileclient").then( ... ); でラップできます。 提供されるサンプル・アプリケーションはこの予備手段を使用しています。

iOS でのサイレント通知または対話式通知については、以下を参照してください。

前提条件:

ジャンプ先:

通知構成

新しい Cordova プロジェクトを作成するか既存のプロジェクトを使用し、サポートされるプラットフォーム (iOS、Android、Windows) を 1 つ以上追加します。

MobileFirst Cordova SDK がプロジェクトにまだ存在しない場合は、Cordova アプリケーションへの Mobile Foundation SDK の追加チュートリアルの説明に従ってください。

プッシュ・プラグインの追加

  1. コマンド・ライン・ウィンドウから Cordova プロジェクトのルートにナビゲートします。

  2. 以下のコマンドを実行して、プッシュ・プラグインを追加します。

    cordova plugin add cordova-plugin-mfp-push
    
  3. 以下のコマンドを実行して、Cordova プロジェクトをビルドします。

    cordova build
    

iOS プラットフォーム

iOS プラットフォームでは追加のステップが必要です。
Xcode で、「Capabilities」画面を使用してアプリケーションのプッシュ通知を有効にします。

重要: アプリケーションに対して選択する bundleId は、先に Apple Developer サイトで作成した AppId に一致しなければなりません。 [プッシュ通知の概要] チュートリアルを参照してください。

機能がある Xcode 内の場所を示すイメージ

Android プラットフォーム

Android プラットフォームでは追加のステップが必要です。
Android Studio では、以下の activityapplication タグに追加します。

<activity android:name="com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPushNotificationHandler" android:theme="@android:style/Theme.NoDisplay"/>

通知 API

クライアント・サイド

Javascript 関数 説明
MFPPush.initialize(success, failure) MFPPush インスタンスを初期化します。
MFPPush.isPushSupported(success, failure) デバイスがプッシュ通知をサポートするかどうか。
MFPPush.registerDevice(options, success, failure) デバイスをプッシュ通知サービスに登録します。
MFPPush.getTags(success, failure) プッシュ通知サービス・インスタンス内で使用可能なすべてのタグを取得します。
MFPPush.subscribe(tag, success, failure) 特定のタグにサブスクライブします。
MFPPush.getSubsciptions(success, failure) デバイスが現在サブスクライブしているタグを取得します。
MFPPush.unsubscribe(tag, success, failure) 特定のタグからアンサブスクライブします。
MFPPush.unregisterDevice(success, failure) プッシュ通知サービスからデバイスを登録抹消します。

API 実装

初期化

MFPPush インスタンスを初期化します。

  • クライアント・アプリケーションが、正しいアプリケーション・コンテキストの MFPPush サービスに接続するために必要です。
  • 最初に API メソッドを呼び出してから、その他の MFPPush API を使用する必要があります。
  • 受け取ったプッシュ通知を処理するコールバック関数を登録します。
MFPPush.initialize (
    function(successResponse) {
        alert("Successfully intialized");
        MFPPush.registerNotificationsCallback(notificationReceived);
    },
    function(failureResponse) {
        alert("Failed to initialize");
    }
);

プッシュがサポートされるか

デバイスがプッシュ通知をサポートするかどうかをチェックします。

MFPPush.isPushSupported (
    function(successResponse) {
        alert("Push Supported: " + successResponse);
    },
    function(failureResponse) {
        alert("Failed to get push support status");
    }
);

デバイスの登録

デバイスをプッシュ通知サービスに登録します。 必要なオプションがない場合、オプションは null に設定できます。

var options = { };
MFPPush.registerDevice(
    options,
    function(successResponse) {
        alert("Successfully registered");
    },
    function(failureResponse) {
        alert("Failed to register");
    }
);

タグの取得

プッシュ通知サービスからすべての使用可能なタグを取得します。

MFPPush.getTags (
    function(tags) {
        alert(JSON.stringify(tags));
},
    function() {
        alert("Failed to get tags");
    }
);

サブスクライブ

目的のタグにサブスクライブします。

var tags = ['sample-tag1','sample-tag2'];

MFPPush.subscribe(
    tags,
    function(tags) {
        alert("Subscribed successfully");
    },
    function() {
        alert("Failed to subscribe");
    }
);

サブスクリプションの取得

デバイスが現在サブスクライブしているタグを取得します。

MFPPush.getSubscriptions (
    function(subscriptions) {
        alert(JSON.stringify(subscriptions));
    },
    function() {
        alert("Failed to get subscriptions");
    }
);

アンサブスクライブ

タグからアンサブスクライブします。

var tags = ['sample-tag1','sample-tag2'];

MFPPush.unsubscribe(
    tags,
    function(tags) {
        alert("Unsubscribed successfully");
    },
    function() {
        alert("Failed to unsubscribe");
    }
);

登録抹消

プッシュ通知サービス・インスタンスからデバイスを登録抹消します。

MFPPush.unregisterDevice(
    function(successResponse) {
        alert("Unregistered successfully");
    },
    function() {
        alert("Failed to unregister");
    }
);

プッシュ通知の処理

登録済みのコールバック関数内で応答オブジェクトを操作することで、受け取ったプッシュ通知を処理できます。

var notificationReceived = function(message) {
    alert(JSON.stringify(message));
};

サンプル・アプリケーションのイメージ

サンプル・アプリケーション

ここをクリック して Cordova プロジェクトをダウンロードします。

注: サンプルを実行するには、Android デバイス上に最新バージョンの Google Play Services がインストールされている必要があります。

サンプルの使用法

サンプルの README.md ファイルの指示に従ってください。

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 October 05, 2018