smchae
smchae

Reputation: 1095

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.

Upvotes: 1

Views: 135

Answers (1)

smchae
smchae

Reputation: 1095

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

Upvotes: 2

Related Questions