Search code examples
ionic-frameworkionic-view

Ionic PushNotification


I have implemented ionic push notification on my app for android. Push notification works well when app is not running(either is in background or not started), however, it does not get status bar notification(notification bar) or vibration that worked when running in background or not started at all.

$ionicPlatform.ready(function() {

    localStorage.myPush = ''; // I use a localStorage variable to persist the token
    var tokenID = '';
    $cordovaPushV5.initialize(  // important to initialize with the multidevice structure !!
        {
            android: {
                senderID: "457390407561"
            },
            ios: {
                alert: 'true',
                badge: true,
                sound: 'false',
                clearBadge: true
            },
            windows: {}
        }
    ).then(function (result) {
        $cordovaPushV5.onNotification();
        $cordovaPushV5.onError();
        $cordovaPushV5.register().then(function (resultreg) {
            localStorage.myPush = resultreg;
            console.log(localStorage);
        }, function (err) {
            // handle error
        });
    });

    $rootScope.$on('$cordovaPushV5:notificationReceived', function(event, data){
      // data.message,
      // data.title,
      // data.count,
      // data.sound,
      // data.image,
      // data.additionalData
      console.log("notification received");
      console.log(event);
      console.log(data);
      console.log(data.message);
      console.log(data.title);
      console.log(data.count);
      console.log(data.sound);

      if (data.additionalData.foreground === true) {
        // do something if the app is in foreground while receiving to push - handle in app push handling
        console.log("notification received in foreground");
      }
      else {
       // handle push messages while app is in background or not started
       console.log("notification received in background");
       $state.go('app.orderlist');
      }

    });
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });

Any advice or suggestion?

Thank you in advance.


Solution

  • You can add

    forceShow: true
    

    like below

    $cordovaPushV5.initialize(  // important to initialize with the multidevice structure !!
            {
                android: {
                    senderID: "xxxxxxxxx",
                    forceShow: true
                },
                ios: {
                    alert: 'true',
                    badge: true,
                    sound: 'false',
                    clearBadge: true,
                },
                windows: {}
            }
        )