2017-01-24 11 views
1

最新のGCMプッシュ通知プラグインをCordovaで使用しています。通知はうまくいっていますが、ユーザーがプッシュ通知を受け取ったときにアプリケーションをフォアグラウンドにしたいと思っています。GCMプッシュ通知(コルドバ)を受け取ったときにアプリをフォアグラウンドにする

多くの場所からいくつかのソリューションを試しましたが、通知を受け取ったときにアプリケーションをフォアグラウンドにすることはできません。

誰かがここに似た何かをするために管理しているようですが、関係なく、私は何をすべきか、私は成功を複製することはできません。

Bring cordova application to foreground when push arrives

彼の質問でGCMIntentService.javaためのコードが利用できるものと異なっています今。

これを動作させるにはどうすればよいですか?

+0

インポートすることを確認してください? 'GCM'は推奨されていません。 'FCM'を使用してください – Piyush

+0

FCMを使用する場合、この機能は可能ですか? –

答えて

0

GCMIntentservice.javaファイルのonMessageReceivedメソッドに次の行を組み込みます。

@Override 
    public void onMessageReceived(String from, Bundle extras) { 
     Log.d(LOG_TAG, "onMessage - from: " + from); 

     if (extras != null) { 
      Context applicationContext = getApplicationContext(); 

      SharedPreferences prefs = applicationContext.getSharedPreferences(PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); 
      boolean forceShow = prefs.getBoolean(FORCE_SHOW, false); 
      boolean clearBadge = prefs.getBoolean(CLEAR_BADGE, false); 

      extras = normalizeExtras(applicationContext, extras); 

      if (clearBadge) { 
       PushPlugin.setApplicationIconBadgeNumber(getApplicationContext(), 0); 
      } 

      // if we are in the foreground and forceShow is `false` only send data 
      if (!forceShow && PushPlugin.isInForeground()) { 
       Log.d(LOG_TAG, "foreground"); 
       extras.putBoolean(FOREGROUND, true); 
       extras.putBoolean(COLDSTART, false); 
       PushPlugin.sendExtras(extras); 
      } 
      // if we are in the foreground and forceShow is `true`, force show the notification if the data has at least a message or title 
      else if (forceShow && PushPlugin.isInForeground()) { 
       Log.d(LOG_TAG, "foreground force"); 
       extras.putBoolean(FOREGROUND, true); 
       extras.putBoolean(COLDSTART, false); 

       showNotificationIfPossible(applicationContext, extras); 
      } 
      // if we are not in the foreground always send notification if the data has at least a message or title 
      else { 
       Log.d(LOG_TAG, "background"); 
       extras.putBoolean(FOREGROUND, false); 

       Intent wintent = new Intent(context, MainActivity.class); 
      wintent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(wintent); 

       extras.putBoolean(COLDSTART, PushPlugin.isActive()); 

       showNotificationIfPossible(applicationContext, extras); 
      } 
     } 
    } 

そして、あなたは `GCM`を使用してMainActivity.javaそれでも

+0

返事をありがとう。私はちょうど今それを行い、コード "import MainActivity;"を入力してMainActivityをインポートしました。まだアプリをフロントに持ってこないのですが...標準のプッシュメッセージでプッシュについて通知するだけです。他の考え? –

関連する問題