$rootScope.$on('$cordovaLocalNotification:trigger', function(event, notification, state) {
//code
});
我已经尝试过上面的代码,但它仅适用于应用程序已经在通知时打开的情况。我想计算未打开应用程序时触发的所有通知。有什么办法吗?
我以这种方式找到了一个解决方案,我将这些通知保存在我的本地存储中,在设备准备就绪时,我将当前时间与预定时间进行比较,并计算所有被触发的通知,而那些不是。
应用程序代码无法运行以使存储在localStorage或Sqlite-DB(例如)中的计数器保持最新。
因此,增加计数器以满足您的请求的唯一方法是:
我想计算未打开应用程序时触发的所有通知
你必须使用:
$rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) {
// increase counter in your localStorage or Sqlite-DB here
});
因为正如该文档所述:
如果应用程序没有运行,在 deviceready 之后也会调用 click 事件。
无论您的应用程序是否打开,单击通知时始终会调用 click 事件。
如果您只想计算被点击的通知
那么你可以这样做:
$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");
}
});
// ....
});
希望这也有帮助。