Ionic v1 本地通知触发状态

Ionic v1 Local Notifications Trigger Status

$rootScope.$on('$cordovaLocalNotification:trigger', function(event, notification, state) {
    //code
});

我试过上面的代码,但它只适用于应用程序已经打开并收到通知的情况。我想计算在应用程序未打开时触发的所有通知。 有什么办法吗?

  1. 当应用程序关闭时(例如,不只是使用 android 进入后台)和
  2. 触发或显示通知,然后

应用程序代码无法运行 使存储在 localStorage or a Sqlite-DB 中的计数器保持最新(例如)。

所以只有增加一个计数器才能满足您的要求:

I want to count all the notifications which are triggered while the app wasn't opened

您必须使用:

$rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) {
    // increase counter in your localStorage or Sqlite-DB here
});

因为 doc 指出:

The click event will also be called after deviceready if the app wasn’t running.

无论您的应用是否打开,点击通知时都会调用点击事件。


如果您只想计算被点击的通知

  • 当您的应用未打开时或
  • 您的应用已启动,但用户不在您的应用内(与 iOS 相关,因为应用代码在进入后台或关闭时不会 运行)。

那么你可以这样操作:

$ionicPlatform.ready(function() {
// ....
    $rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) {
        if(state === "background"){
           console.log("increase counter");
        }
    });
    // or if the first does not fire like with me, then use this instead:
    cordova.plugins.notification.local.on('click', function (notification, state) {
        if(state === "background"){
           console.log("increase counter");
        }
    });
// ....
});

希望这也有帮助。

我以这种方式找到了一个解决方案,我将这些通知保存在我的本地存储中,在设备上准备就绪我将当前时间与计划时间进行比较并计算所有已触发和未触发的通知.