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 でのサイレント通知または対話式通知については、以下を参照してください。
前提条件:
- 必ず、以下のチュートリアルをお読みください。
- ローカルで稼働している MobileFirst Server、またはリモートで稼働している MobileFirst Server
- 開発者ワークステーションに MobileFirst CLI がインストールされていること
- 開発者ワークステーションに Cordova CLI がインストールされていること
ジャンプ先:
通知構成
新しい Cordova プロジェクトを作成するか既存のプロジェクトを使用し、サポートされるプラットフォーム (iOS、Android、Windows) を 1 つ以上追加します。
MobileFirst Cordova SDK がプロジェクトにまだ存在しない場合は、Cordova アプリケーションへの Mobile Foundation SDK の追加チュートリアルの説明に従ってください。
プッシュ・プラグインの追加
-
コマンド・ライン・ウィンドウから Cordova プロジェクトのルートにナビゲートします。
-
以下のコマンドを実行して、プッシュ・プラグインを追加します。
cordova plugin add cordova-plugin-mfp-push
-
以下のコマンドを実行して、Cordova プロジェクトをビルドします。
cordova build
iOS プラットフォーム
iOS プラットフォームでは追加のステップが必要です。
Xcode で、「Capabilities」画面を使用してアプリケーションのプッシュ通知を有効にします。
重要: アプリケーションに対して選択する bundleId は、先に Apple Developer サイトで作成した AppId に一致しなければなりません。 [プッシュ通知の概要] チュートリアルを参照してください。
Android プラットフォーム
Android プラットフォームでは追加のステップが必要です。
Android Studio では、以下の activity
を application
タグに追加します。
<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.