質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

0回答

1521閲覧

cordova-plugin-firebase での通知の挙動について

xim2jp

総合スコア10

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

1クリップ

投稿2018/11/08 17:44

編集2018/11/09 15:55

前提・実現したいこと

すでに稼働しているWebアプリを、Monacaでラッピングして、通知機能だけを追加する開発を行っております。
1.index.html に、既存WebアプリのURLを起動するコードと
2.FCMでの通知のためのトークンをサーバーに送信する機能と通知を受信したときのハンドラ
の2つを追加しただけなのですが、通知のハンドリングが思った通りに動作しません。

https://teratail.com/questions/126323

↑こちらの件と状況はかなり似ていますが、より詳細な方法が知りたくて投稿させて頂きました。

発生している問題・エラーメッセージ

InAppBrowserでトークンを送信したあとにその画面はWebアプリのトップページにくるようになっています。
これでサーバーにトークンが登録され、WebアプリはInAppBrowserの中で問題なく動作します。

ただ、通知をサーバーからトークン宛に送信すると通知は着信しますが、通知着信時に、
アプリが起動しなければ、ソースコードのように”Hello World"が表示されます。これが期待通りの動作です。
ただ、アプリが起動している場合は、アプリがアクティブになるだけで、onNotificationOpenが呼び出されていない様子です。

上記に記載しました過去記事によると、onNotificationOpenがページにないからということでしたが、この場合アプリ本体は生きていて、WebアプリはInAppBrowserの中で動いているので、onNotificationOpen は反応するのではと期待していましたがそうではありませんでした。

Webアプリのソースに手を入れられない以上、この実装は難しいのでしょうか。
少なくとも、サーバーから送信するタイトルとメッセージは通知ドロワーに表示されるので、onNotificationOpen 以外になにか通知をハンドルできる仕組みがあるのでしょうか。

みなさまのお知恵を拝借できれば幸いです。

該当のソースコード

JavaScript

1ons.ready(function() { 2 3 var inabppb; 4 5 window.FirebasePlugin.getToken(function(token) { 6 // Tokenを送信してサーバーに登録 7 inappb = cordova.InAppBrowser.open('https://server/send/token/' + token, '_blank'); 8 9 }, function(error) { 10 console.error(error); 11 }); 12 13 14 window.FirebasePlugin.onNotificationOpen(function(notification) { 15     // アプリが起動してない場合に限りここを通る 16 alert("Hello Worild"); 17 }, function(error) { 18 console.error(error); 19 }); 20 21 22});

試したこと

InAppBrowserの替わりにwindow.open やlocation.href などを利用しても同じでした。

補足情報(FW/ツールのバージョンなど)

cordova 7.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問