I am doing pushnotification for both Android/IOS.I have used a phonegap push-plugin https://github.com/phonegap-build/PushPlugin, it seems to work great.
I am receiv
I am facing same problem after some research finally Got My Solution, If any one Have Same Problem .Please Follow these link
https://github.com/phonegap-build/PushPlugin/issues/213
You can easily accomplish this,
Step 1 : Open your GCMIntentService.java file
Check for the method onMessage
in that method you will find from here they are passing the intent to your MyPhoneGapActivity.java ...Now what you have to do is you pass some extra information.... Passing some extra information to the intent
Check for this line
Intent notificationIntent = new Intent(context, MyPhoneGapActivity.class);
//here you pass the information
notificationIntent.putExtra ("url",url);
Can you see above i have passed extra information url ...for the complete code see below
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "onMessage - context: " + context);
// Extract the payload from the message
Bundle extras = intent.getExtras();
if (extras != null)
{
boolean foreground = this.isInForeground();
extras.putBoolean("foreground", foreground);
if (foreground){
PushHandlerActivity.sendToApp(extras);
}else{
String message = extras.getString("message");
String title = extras.getString("title");
Notification notif = new Notification(android.R.drawable.btn_star_big_on, message, System.currentTimeMillis() );
notif.flags = Notification.FLAG_AUTO_CANCEL;
notif.defaults |= Notification.DEFAULT_SOUND;
notif.defaults |= Notification.DEFAULT_VIBRATE;
String url = "notify";
Intent notificationIntent = new Intent(context, MyPhoneGapActivity.class);
//here you pass the information
notificationIntent.putExtra ("url",url);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.setLatestEventInfo(context, title, message, contentIntent);
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
mNotificationManager.notify(1, notif);
}
}
}
Step 2:
In your MyPhoneGapActivity.java
package com.test;
import org.apache.cordova.DroidGap;
import android.os.Bundle;
public class MyPhoneGapActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
Bundle extras = getIntent().getExtras();
String message = extras.getString("url");
if(message == "notify"){
super.loadUrl("file:///android_asset/www/home.html", 10000);
}else{
super.loadUrl("file:///android_asset/www/index.html", 10000);
}
}
}
Thats it now when you click the notification it will load the home.html file:-)
I've never used this plugin before but it looks like it passes a message
in the notification that you can process in your application. It seems therefore that in your index.html
you could read this message and if it contains some certain string, redirect to main.html
or wherever you want to go. You could do this while a splash screen is still visible or something so that the user doesn't see a jarring page redirect.