質問編集履歴

2 内容の追加

Clavat

Clavat score 92

2017/11/10 12:04  投稿

Monaca プッシュ通知起動かアイコン起動かを判別したい
Monacaでアプリを開発しているのですが、
アプリの起動方法によって、起動直後の処理を分けたいと思っています。
具体的には
①アプリアイコンから普通にアプリを起動した場合 ・・・ 処理Aを実施。
②プッシュ通知からアプリを起動した場合は ・・・ 処理Aを行わず、処理Bのみ実施実施。
ということを実現したいです。
(もしくは処理Bの結果を待って処理Aを実行したい。  
 ただし普通にアプリが起動した場合、処理Bは実行されないので、  
 単純にB⇒Aの前後関係をつけると処理Aが行われないということになる・・・)  
現状、プッシュ通知から起動した場合でも(②の場合でも)、
アプリが起動したことになるので「処理A」が先に実行され、その後「処理B」となってしまいます。
参考として下記を見たところ「ペイロード」のありなしで判別できるとのことなのですが、
Monacaの場合、プラグインやJavaScriptの記載でどうやったら判別できるのか、教えていただけないでしょうか。
http://blog.mb.cloud.nifty.com/entry/3356
ちなみに、プッシュ通知はFirebaseから送付しており、
Monacaでは「cordova-firebase-plugin」を使用しています。
  • Cordova

    663 questions

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

  • Monaca

    1567 questions

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

1 質問事項を明確に記載。

Clavat

Clavat score 92

2017/11/10 11:09  投稿

Monaca(Cordova)アプリの起動方法によって処理を分けたい
Monaca プッシュ通知起動かアイコン起動かを判別したい
Monacaでアプリを開発しているのですが、アプリの起動方法によって、起動直後の処理を分けたいと思っています。
Monacaでアプリを開発しているのですが、
アプリの起動方法によって、起動直後の処理を分けたいと思っています。
具体的には
①アプリアイコンから普通にアプリを起動した場合 ・・・ 処理Aを実施。
②プッシュ通知からアプリを起動した場合は ・・・ 処理Aを行わず、処理Bのみ実施実施。
ということを実現したいです。
①アプリを起動した際に行う処理は
```ここに言語を入力
   ons.ready(function() {
    //処理A
    function a(){
         ・・・・・・・・
      }
  }
現状、プッシュ通知から起動した場合でも(②の場合でも)、
アプリが起動したことになるので「処理A」が先に実行され、その後「処理B」となってしまいます。
```
というように書きますよね?
参考として下記を見たところ「ペイロード」のありなしで判別できるとのことなのですが、
Monacaの場合、プラグインやJavaScriptの記載でどうやったら判別できるのか、教えていただけないでしょうか。
http://blog.mb.cloud.nifty.com/entry/3356
②プッシュ通知(私の場合、Firebase Pluginを使用)から起動した際に行う処理は  
```ここに言語を入力  
   ons.ready(function() {  
       window.FirebasePlugin.onNotificationOpen(function(notification){  
       //処理B  
           ・・・・・・  
    }  
  }  
```  
のように、「通知が開かれたら・・・」という条件で処理を行います。  
この「通知が開かれたら・・・」の場合、処理Bは実行されるのですが、
その前に「処理A」が必ず実行されてしまうように思います。
そのため、処理Bで何らかのフラグを立てて、処理Aの実施判断条件にしようと思っても、
下のように書いたとしても、処理Aが実行されているので、止められません。
```ここに言語を入力
   ons.ready(function() {
       window.FirebasePlugin.onNotificationOpen(function(notification){
       //処理B
           ・・・・・・
       flg_a = "no";
    }
    //処理A
    if(flg_a != "no"){
     function a(){
          ・・・・・・・・
        }
    }
  }
```
何か良いアイデアはないでしょうか?
※ものすごく単純なロジックで解決しそうな気がしているのですが、思いついていません。
ちなみに、プッシュ通知はFirebaseから送付しており、
Monacaでは「cordova-firebase-plugin」を使用しています。
  • Cordova

    663 questions

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

  • Monaca

    1567 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る