$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
});
因为这个doc说:
如果应用程序未运行,也会在deviceready之后调用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");
}
});
// ....
});
希望这也有帮助。
我已经通过这种方式找到了一个解决方案,我在本地存储中发布了这些通知,在设备就绪时我将当前时间与预定时间进行比较,并计算所有已触发的通知,但事实并非如此。