0

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

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

application.applicationIconBadgeNumber = 0;

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

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

4

1 回答 1

1

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

似乎在 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;
}
于 2015-02-11T07:19:52.300 回答