在 iOS 中使用 Cordova 的 PushPlugin 清除单个通知

Clear a single notification with PushPlugin for Cordova in iOS

在我使用 Cordova 开发的 iOS 应用程序中,我正在使用 PushPlugin,我遇到了一个问题(也许这对其他人来说不是问题),当你有通知中心的应用程序的多个通知如果您单击其中一个(应用程序启动),然后您再次查看您的通知中心,您将看不到任何剩余通知。

我查看了插件代码,发现在文件 AppDelegate+notification.m 的函数 applicationDidBecomeActive 中包含这一行:

application.applicationIconBadgeNumber = 0;

可能是这一行的问题?如果没有,我如何编辑代码以仅清除单击的通知?

我几天前在插件存储库中打开了一个问题,但我没有收到 developer/s 的任何回复。

问题是iOS7及以前的版本是如何管理通知的,没有办法只删除一个通知,可以全部删除,也可以none,但不能删除一个,不是一个插件错误,你无能为力

似乎在 iOS 8 上苹果会在你点击它时自动删除通知,所以你不必在 iOS 8 上执行此行:application.applicationIconBadgeNumber = 0;

您可以使用这个预处理器宏

#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

如果设备有以前的版本,检查版本以删除所有通知

if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
    application.applicationIconBadgeNumber = 0;
}