Monaca + Ionic を使用してアプリ開発を行っています。
iBeaconの電波を受信して、ローカル通知を表示⇒ローカル通知をタップすると
専用の画面に遷移させるというような機能を実装したいです。
ローカル通知にはcordova-plugin-local-notificationsを使用しています。
通知自体は表示することができるのですが
通知タップ後の画面遷移先の指定方法がわかりません。
通知タップ時には必ずアプリの初期画面が表示されるものなのでしょうか。
初期処理時に通知から起動されたのかを判定して処理を分岐させるのが一般的なのでしょうか。
その判定はMonacaで可能なのでしょうか。
ご存じの方ご教授願えないでしょうか。
Js
1cordova.plugins.notification.local.schedule( 2 { 3 id: 1, 4 text: 'クーポンが届いています。', 5 sound: null, 6 data: { 7 test: id 8 } 9 }); 10 }
こちらの質問と類似していますが
ローカル通知のプラグイン(cordova-plugin-local-notifications)
でも実現可能なのでしょうか。
https://teratail.com/questions/100237
追記=====================================
devicereadyからcordova.plugins.notification.local.launchDetails
の値を参照すれば通知から起動されたかは判断できるということがわかりました。
ただ、アプリ起動中(バックグラウンド・フォアグラウンド)にローカル通知をタップしてもこの判定は動かないので困っています。。。
アプリが起動していないとiBeaconの電波受信もできずローカル通知自体が来ないです。
通知が来た状態でアプリのプロセスをキルし、通知からアプリ起動すると以下のプログラムで動作しました。
Js
1function onLoad() { 2 console.log('onLoad'); 3 window.skipLocalNotificationReady = true; 4 5 document.addEventListener("deviceready", onDeviceReady, false); 6 } 7 8 function onDeviceReady() { 9 //通知から起動してきたかを判定 10 cordova.plugins.notification.local.fireQueuedEvents(); 11 console.log('launchDetails-notification:'+cordova.plugins.notification.local.launchDetails); 12 var launchDetails = cordova.plugins.notification.local.launchDetails 13 if(launchDetails){ 14 $('#LaunchMsg').text('LaunchApp from notification'); 15 } 16}
何か良い方法はないでしょうか。
あなたの回答
tips
プレビュー