在Apache Cordova中,为什么LocalNotifications由默认的AppDelegate文件处理,而不



我一直在尝试在cordova中实现localNotifications,发现了一些过时的插件,但没有完全最新的插件。我在cordova源中注意到,localNotifications被处理,然后广播到所有监听插件:

// repost the localnotification using the default NSNotificationCenter so multiple plugins may respond
- (void)            application:(UIApplication*)application
    didReceiveLocalNotification:(UILocalNotification*)notification
{
    // re-post ( broadcast )
    [[NSNotificationCenter defaultCenter] postNotificationName:CDVLocalNotification object:notification];
}

但推送通知没有类似的处理方式。phongap构建推送通知插件使用所谓的"方法swizzling"向AppDelegate.m 添加一个额外的方法

标准的AppDelegate似乎应该两者都做,或者两者都不做,或者本地通知是否有一些基本的东西,这意味着很多插件可能想要监听它们?

有没有关于如何编写一个插件来监听cordova发布的通知的例子?我发现的localNotifications插件都告诉你,作为安装的一部分,手动修改AppDelegate.m文件。

编辑:将localNotifications添加到核心的JIRA错误。

我更新了这个插件,以便与我的应用程序一起使用,该应用程序基于cordova 2.5.0,但它应该适用于更新到2.9 的所有版本

这个插件需要修改AppDelegate.m,我同意这有点邪恶,但我需要一个有效的解决方案,所以必须务实

你可以从这里下载我的XCode测试项目。它包含更新的插件代码和修改的AppDelegate.m,以及示例用法。

最新更新