基本上,我有一个使用Ionic Framework的Angular应用程序(基于Cordova),我在iOS设备上运行。
在主(父)控制器中,我有这段代码:
window.onNotificationAPN = function (event) {
if (event.alert) {
PushedNotificationPublisher.publish(angular.fromJson(event.data)); //custom publisher
};
document.addEventListener("resume", resume, false);
function resume() {
$rootScope.$apply(function () {
$rootScope.$broadcast('onResumeApp');
});
}
基本上,它定义了一个resume
函数(在从后台输入图标应用时触发),以及在横幅中点击新通知时的回调。
在某些控制器上,我会听到推送通知和resumeApp
事件功能。
当用户点击图标而不是通知时,resumeApp
事件是刷新某些数据所必需的
当用户已将应用程序置于前台时,需要推送器,以便他只处理通知。
当应用程序处于后台并且用户点击通知时,两个路径都会被执行:推送器和resumeApp可能导致某些处理过的数据重复。
实际上,resumeApp
会触发完整的数据库刷新,而通知会添加一些数据,当然包含数据库刷新。
当用户点击横幅中的通知时,是否有一种有效的方法可以避免处理简历事件。
答案 0 :(得分:0)
解决方案非常简单,我刚刚找到它:
window.onNotificationAPN = function (event) {
if (event.foreground == 1 && event.alert) { //detect if the app was still on foreground
PushedNotificationPublisher.publish(angular.fromJson(event.data)); //custom publisher
};
否则,如果应用程序处于后台,则只有resume
事件可以解决问题。