プッシュ通知(MobilePortal)
基本的な使い方
Contents |
概要
このページでは、JavaScriptでプッシュ通知を配信する方法と、
mBaaS管理画面からプッシュ通知を配信する方法について説明していきます。
JavaScriptのSDKでは、プッシュ通知の送信・更新・検索・削除が可能となっています。
mBaaS管理画面では、プッシュ通知の配信が可能となっています。
なお、プッシュ通知の配信は、本番用アプリ/検証用アプリから行います。
その他の新規作成したアプリから、MobilePortalアプリへプッシュ通知を配信することはできません。
※ Android端末にプッシュ通知を送信する場合、受信端末が省電力モードに設定されているとプッシュ通知が端末に届かない場合があります。
SDKを利用してプッシュ通知を配信する
パラメータを設定して、sendメソッドでプッシュ通知を送信できます。
即時配信フラグもしくは配信時間を必ず指定する必要があります。
設定可能なパラメータの詳細については、[REST APIリファレンス:プッシュ通知登録]をご覧ください。
var push = new ncmb.Push();
push.set("immediateDeliveryFlag", true)
.set("message", "Hello, World!")
.set("target", ["ios", "android"]);
push.send()
.then(function(push){
// 送信後処理
})
.catch(function(err){
// エラー処理
});
プッシュ通知の検索
条件を設定することでプッシュ通知を検索します。
ncmb.Push.equalTo("target","ios")
.fetchAll()
.then(function(pushs){
for (var i = 0; i < pushs.length; i++) {
console.log(pushs[i].message);
}
})
.catch(function(err){
// エラー処理
});
プッシュ通知の更新・削除
未配信のプッシュ通知については、設定の変更や削除が可能です。
// push:保存済みのプッシュインスタンス
push.set("target", ["ios"]);
push.update() // 更新
.then(function(push){
return push.delete(); // 削除
})
.then(function(){
// 削除後処理
})
.catch(function(){
});
mBaaS管理画面からプッシュ通知を配信する
ここからは、mBaaS管理画面からプッシュ通知を配信する方法を説明します。
プッシュ通知を送信する
アプリ一覧画面から、「MobilePortal」アプリの画面を開きます。
mBaaS管理画面左側メニューのプッシュ通知をクリックし、プッシュ通知の画面を開きます。
新しいプッシュ通知ボタンをクリックすると、プッシュ通知作成画面が表示されます。
このページで新たなプッシュ通知を作成できます。タイトル、メッセージ、JSONデータを記入してください。
※iOS宛プッシュ通知の設定は、合計2Kバイトまでがサポート対象となります。
※Android宛プッシュ通知の設定は、GCM配信は合計4Kバイトまで、FCM配信は合計2Kバイトまでがサポート対象となります。
配信日時の指定を行います。以下の例では、作成されたプッシュ通知が即時に配信される設定になっています。
プッシュ通知送信日時を指定する場合は、配信日時の欄で日時を選択し、希望する日時を指定してください。
配信期限の指定では電源が切れているなどの事情により通知を受け取れなかった端末への再送信期間を設定できます。デフォルトの設定では再送信できる期間が10日間となっていますが1~28日間、1~24時間の間で、期間を指定できます。
また、配信期限を日時で指定する場合は、日時の指定画面が表示されます。
次に、配信を行うプラットフォームを選択してください。AndroidとiOSの両方にプッシュ通知を送信することも可能です。
Androidを選択した場合は、以下のようにアクション設定と、ダイアログ表示の設定画面が表示されます。
iOSを選択した場合は、以下のようなiOS端末へのプッシュ通知を行うための設定画面が開きます。
最後に「プッシュ通知を作成する」ボタンをクリックすると、プッシュ通知が作成されます。
MobilePortalアプリへのプッシュ通知について
プッシュ通知からMobileSUITEに登録されているコンテンツを起動する
プッシュ通知配信時のJSONデータにMobileSUITEに登録されているコンテンツを指定することで、プッシュ通知開封時に指定のコンテンツを起動させることができます。
起動するコンテンツを指定するには、下記の形式に沿ったJSONデータを含むプッシュ通知を配信してください。
キー | データ型 | 必須 | 説明 | 備考 | ||
---|---|---|---|---|---|---|
MS | オブジェクト | ○ | MobilePortalアプリに通知するパラメータ | |||
OPEN_CONTENT | オブジェクト | ○ | ・キー「MS」に設定する値 ・MobilePortalアプリが起動するコンテンツ(HTMLアプリ)情報 |
|||
TARGET | 文字列 | ○ | ・キー「OPEN_CONTENT」に設定する値 ・コンテンツID、または、コンテンツコード |
例: "1234"、"TestContentCode" | ||
PARAM | オブジェクト | ・キー「OPEN_CONTENT」に設定する値 ・コンテンツに通知するパラメータ |
上記JSONデータはmBaaS管理画面のプッシュ通知配信画面で指定します。
以下は、指定コンテンツ(コンテンツID:1234)をプッシュ通知から起動する場合の例です。
※ RemoteNotificationのプッシュ通知が選択された場合に、プッシュ通知配信時に指定したMobileSUITEに登録されているコンテンツ(コンテンツID:1234)を起動します。
MobilePortalアプリを利用する指定のユーザにのみプッシュ通知を表示する
下記の形式に沿ったJSONデータを含むサイレントプッシュ通知を配信した場合、以下の条件を満たしているユーザにのみプッシュ通知が表示されます。
- MobilePortalアプリの最終ログインユーザが、プッシュ通知のJSONデータで指定したユーザである
※ iOSの場合、MobilePortalアプリがマルチタスク画面から終了されていると、サイレントプッシュ通知は表示されません。
※ iOSの場合、サイレントプッシュ通知が表示されない可能性があります。
※ 端末を使用中のユーザとMobilePortalアプリの最終ログインユーザが異なる場合があります。この場合、第三者が本通知の内容を閲覧する可能性がありますので、TITLEやMESSAGEなどの通知内容にご注意ください。
キー | データ型 | 必須 | 説明 | 備考 | ||
---|---|---|---|---|---|---|
MS | オブジェクト | ○ | MobilePortalアプリに通知するパラメータ | |||
PORTAL | 文字列 | ○ | ・キー「MS」に設定する値 ・ポータルサイト名 |
例: "xxx.xxx.jp.fujitsu.com" | ||
USER_ID | 文字列 | ○ | ・キー「MS」に設定する値 ・ユーザID |
例: "user@test.local" | ||
TITLE | 文字列 | ○ ※1 | ・キー「MS」に設定する値 ・プッシュ通知のタイトル |
|||
MESSAGE | 文字列 | ○ ※1 ※2 | ・キー「MS」に設定する値 ・プッシュ通知のメッセージ |
※1 Androidは「TITLE」または「MESSAGE」が必須
※2 iOSは必須
上記JSONデータはmBaaS管理画面のプッシュ通知配信画面で指定します。
以下は、ユーザ(ユーザID:user@test.local)宛にプッシュ通知を送信する場合の例です。
※ サイレントプッシュ通知でMobilePortalアプリの最終ログインユーザが指定ユーザ(ユーザID:user@test.local)だった場合、LocalNotificationのプッシュ通知を表示します。
iOSを選択した場合は、content-availableを有効にしてください。
指定のコンテンツを起動するプッシュ通知を、指定のユーザにのみ配信するサンプル
MobileSUITEに登録されている指定のコンテンツを起動するプッシュ通知を、指定のユーザにのみ配信することも可能です。
以下は、指定のコンテンツ(コンテンツID:1234)を起動するプッシュ通知をユーザ(ユーザID:user@test.local)宛に送信する場合のJSON記入例です。
{
"MS": {
"PORTAL": "xxx.xxx.jp.fujitsu.com",
"USER_ID": "user@test.local",
"TITLE": "通知",
"MESSAGE": "新しい情報があります。",
"OPEN_CONTENT": {
"PARAM": {
"key1": "value1",
"key2": "value2"
},
"TARGET": "1234"
}
}
}
サイレントプッシュ通知で最終ログインユーザが指定ユーザ(ユーザID:user@test.local)だった場合にLocalNotificationのプッシュ通知を表示します。
発行されたLocalNotificationのプッシュ通知が選択された場合は、MobileSUITEに登録されているコンテンツ(コンテンツID:1234)を起動します。
JSONデータのパラメータに使用可能な文字の制限
JSONデータのパラメータには、以下の文字が使用できません。
- ダブルクォーテーション「"」
- ドット「.」
- 先頭にドル記号「$」
配信エラーとなった場合
プッシュ通知一覧の画面で、配信状況が配信エラーになる場合がございます。
エラーが発生する場合の主な理由と対策は、以下の通りです。
- 証明書の不具合
- iOSプッシュ通知証明書に不具合があったり、有効期限が切れていた場合、エラーとなります。
- 配信対象OSの指定誤り
- 配信対象をテナント契約時の対象OSに設定していないとエラーになります。
配信エラーとなった場合に、ダッシュボードから証明書の設定やMobileSUITE mBaaS機能のログについて確認することはできませんので、ご不明な点がございましたらお気軽にお問い合わせください。
※配信エラーでは無いにも関わらずプッシュ通知が届かない場合は、省電力モードの設定が影響している場合がございます。端末の設定をご確認ください。
ダミーデータを登録した端末を指定してプッシュ通知を行わない
プッシュ通知を配信する端末の中に、テスト目的などでダミーデータを入力した端末が含まれていると、他の端末も含めてプッシュ通知が配信されない場合がございます。
アプリ側でプッシュ通知が受信されるかを確認する場合は、ダミーデータを含んだ端末を配信対象に含めないでください。