質問: ### android端末のバックグラウンドにいるアプリにpush通知を送り、通知受信時に端末の位置情報を取得したい 現在monacaで、Android端末の位置情報を取得する機能を有するアプリを開発しています。 今回実装したい機能として、サーバ側からpush通知を送った際に、アプリの状態(フォアグランド/バックグラウンド)に関わらず、端末の位置情報を取得し、サーバに送るという処理を実現させたいと考えています。 現状、フォアグラウンドでの動作は確認ができたのですが、バックグラウンドにいる時にpush通知を送っても、受信時の処理が動いてくれません。 今回、お聞きしたいのは以下の2点です。 1monacaでの開発でバックグラウンドにいる状態のアプリにpush通知を送り、受信時に処理を実行させることは可能でしょうか? 2そもそもAndroid端末でバックグラウンドにいるアプリが位置情報を取得することは可能でしょうか? 以上、回答の程よろしくお願いいたします。 ### 補足(使用しているプラグイン) 位置情報の取得:cordova-plugin-geolocation push通知:phonegap-plugin-push
回答: phonegap-plugin-pushはペイロードの設定の仕方によってはフォアグラウンドでしか受け取れないようです。 dataペイロードのみを設定して送ってみるとどうでしょうか? phonegap-plugin-push on(“notification”) event is not firing when app is in background FCMなどでも同様の問題が起こるようです。 Android FCM(GCM) バックグラウンドでonMessageReceivedを通らない時は もしくは過去の質問にこのようなものもありました。デバッグモード起動の後だと通知が受け取れないと言う例でした。 アプリが起動していない状態で、プッシュ通知により端末のスリープを解除したい コメントに対する追記: なるほどです。以下のような記事がありました。 記事内の情報では基本的にはできないようです。 バックグラウンドで位置情報を取得するcordova-background-geolocation-ltを試す monaca自体はそこまで詳しくないのと、中身も詳しく見ていないのでなんとも言えませんがネイティブでバックグラウンドから取得させて処理をするようなイメージでしょうか。