Lalitha Ramkumar
Lalitha Ramkumar

Reputation: 95

How to open specific page in the app on clicking Push Notification?

I am working on an Android app using cordova and implemented a push notification system using the cordova $PushPlugin. My PushPlugin code (source):

module.run(function($rootScope,$cordovaPush) {

var androidConfig = {
"senderID": "replace_with_sender_id",
};

document.addEventListener("deviceready", function(){
$cordovaPush.register(androidConfig).then(function(result) {
  // Success
}, function(err) {
  // Error
})

$rootScope.$on('$cordovaPush:notificationReceived', function(event, notification) {
  switch(notification.event) {
    case 'registered':
      if (notification.regid.length > 0 ) {
        alert('registration ID = ' + notification.regid);
      }
      break;

    case 'message':
      // this is the actual push notification. its format depends on the data model from the push server
      alert('message = ' + notification.message + ' msgCount = ' + notification.msgcnt);
      break;

    case 'error':
      alert('GCM error = ' + notification.msg);
      break;

    default:
      alert('An unknown GCM event has occurred');
      break;
  }
});


// WARNING: dangerous to unregister (results in loss of tokenID)
$cordovaPush.unregister(options).then(function(result) {
  // Success!
}, function(err) {
  // Error
})

}, false);
});

On clicking the push notification received, I want to redirect the user to a specified page in my app. I referred this(based on phonegap pushplugin) but could not figure out a solution. Any help will be appreciated.

Upvotes: 3

Views: 2198

Answers (2)

user61092
user61092

Reputation: 146

This is a simple solution without using any angular routes.

case 'message':
if (notification.foreground === false){
   window.location = '#/abc';
   window.location.reload();
}

Upvotes: 3

Mudasser Ajaz
Mudasser Ajaz

Reputation: 6257

If you check structure of object notification, you will see that there is an attribute foreground, which will be false when you come to app from clicking notification. You can use that to put your logic

case 'message':
 if(notification.foreground === false){
   //add logic for navigation to your specific page i.e $state.go('myPage')
 }

Upvotes: 1

Related Questions