Phonegap PushNotification to open a specific app page

前端 未结 3 1990
無奈伤痛
無奈伤痛 2020-12-13 22:36

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

3条回答
  •  时光说笑
    2020-12-13 23:11

    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:-)

提交回复
热议问题