19

这只是一个普遍的问题。我没有实际的项目或其他我想做的事情。是否可以用 Java 构建应用程序并添加一些框架内容或其他内容并使用通知中心?

4

4 回答 4

16

我写了一个简单的C-> Objective-Cshim .dylib,它导出了showNotification一个立即发送通知的函数。

JNA然后我为dylib中导出的函数编写了一个包装器。我相信您可以结合使用RococoaJNAerator来完全消除这个 dylib。

然后我写了一个简单的 java 应用程序,我把它变成了一个app bundle。这是重要的一点。如果您的 java 应用程序不在应用程序包中,则不会传递通知。

发送到通知中心的消息。

已送达通知截图

这是非常可行的,你只需要按照规则玩NSUserNotificationCenter-它必须在一个应用程序包中。

我为此使用了 java 7,更新 9。另一个问题似乎取得了更大的成功

用于构建这个简单应用程序的代码可在 github 上找到。它包含一个用于创建 的 xcode 项目.dylib和一个使用.dylib来传递通知的 netbeans 项目。

于 2013-01-12T14:30:00.433 回答
10

我找到了一个可能对你有用的解决方案,你可以用来Apple script在 osx 上显示通知,试试这个:

Runtime.getRuntime().exec(new String[] { "osascript", "-e", "display notification "This is a message" with title "Title" subtitle "Subtitle" sound name "Funk"" });

您可以在此处阅读有关Apple script的通知

于 2015-12-11T14:30:59.607 回答
5

当应用程序更新到 Growl 2.0 时,一种可能的解决方案是 Growl,这会将 Growl 通知转发到通知中心。

咆哮2的相关资料

使用MoutainGrowl可以使用当前版本转发 Growl 消息

在 Java 下可以通过libgrowljgntp使用 Growl

也许它不是最干净的解决方案,它对用户有一些要求,但它绝对是一个有效的解决方案

于 2012-08-20T09:27:00.853 回答
4

我建议你看看 IntelliJ IDEA 如何处理MountainLionNotificationsGrowlNotifications中的通知。

正如其他答案中所建议的,它使用 JNA 来操作 NSObjects。

于 2013-01-18T18:35:34.010 回答