Skip to content Skip to sidebar Skip to footer

Bring Cordova Application To Foreground When Push Arrives

I have app up and running. Push notifications are working ok. I need that when push arrives, bring app to foreground, on Android. So, what I found is this piece of code: Intent toL

Solution 1:

The java compiler is telling you that it doesn't know what MainActivity.class is while compiling GCMIntentService.java. You must import MainActivity class from the package where it is defined e.g. if the package is called cordovaExample then at the top of GCMIntentService.java put

import cordovaExample.MainActivity;

and the class must be declared public

package cordova;

publicclassMainActivity {

Solution 2:

Here is what I did, Changes on GMCIntentService.java file which worked great for me.

import com.package.app.*;


@OverrideprotectedvoidonMessage(Context context, Intent intent) {
            Log.d(TAG, "onMessage - context: " + context);

    // Extract the payload from the messageBundleextras= intent.getExtras();
    if (extras != null)
    {
        // if we are in the foreground, just surface the payload, else post it to the statusbarif (PushPlugin.isInForeground()) {
            extras.putBoolean("foreground", true);
            PushPlugin.sendExtras(extras);
        }
        else {
            extras.putBoolean("foreground", false);

            Log.d(TAG, "force launch event");
            Intentwintent=newIntent(context, MainActivity.class);
            wintent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(wintent);

            // Send a notification if there is a messageif (extras.getString("message") != null && extras.getString("message").length() != 0) {
                createNotification(context, extras);
                PushPlugin.sendExtras(extras);
            }
        }
    }
}

Post a Comment for "Bring Cordova Application To Foreground When Push Arrives"