Search code examples
iosfirebasecordova-plugins

badge should be set before opening the app in IOS


When notification received on IOS device at that time the badge should be changed and Badge should be set before opening the app.

I check this onNotificationOpen() method. But when I tap on notification then it calls.

I use cordova-plugin-firebase. Here is the link https://github.com/arnesson/cordova-plugin-firebase

But is there a method that calls when the notification received on IOS device?

  $ionicPlatform.ready(function() {
    if (typeof FirebasePlugin != 'undefined') {
      window.FirebasePlugin.subscribe("notficationsubscribe");

      // Below method calls when i tap on notifcation and sets the badge number             
      window.FirebasePlugin.onNotificationOpen(function(data) {
          window.FirebasePlugin.setBadgeNumber(4);
      }
    }
  }

Above FirebasePlugin.onNotificationOpen() method calls when I tap on notification and sets the badge number, but I want to set the badge when notification received.

Anyone have ideas? How can I achieve it?


Solution

  • Actually i set a logic for it.

    1) I stored a badgeCounter value to database.

    2) when i wants to send the notification at that time i retrieve it from database

     var badge = badgeCounter // it is an integer value
    
     var notification = {
        'title': 'Stock available',
        'body': 'Click here to more details...',
        'sound': 'default',
        'badge': badge 
     };
    

    3) After tap or click on notification, i cleared the badge using below. window.FirebasePlugin.setBadgeNumber(0);

    4) And also in database i update the value to '0' (zero).

    Thus, i solve it and it perfectly works for me.