这只是一个普遍的问题。我没有实际的项目或其他我想做的事情。是否可以用 Java 构建应用程序并添加一些框架内容或其他内容并使用通知中心?
4 回答
我写了一个简单的C
-> Objective-C
shim .dylib,它导出了showNotification
一个立即发送通知的函数。
JNA
然后我为dylib中导出的函数编写了一个包装器。我相信您可以结合使用Rococoa和JNAerator来完全消除这个 dylib。
然后我写了一个简单的 java 应用程序,我把它变成了一个app bundle。这是重要的一点。如果您的 java 应用程序不在应用程序包中,则不会传递通知。
发送到通知中心的消息。
这是非常可行的,你只需要按照规则玩NSUserNotificationCenter
-它必须在一个应用程序包中。
我为此使用了 java 7,更新 9。另一个问题似乎取得了更大的成功。
用于构建这个简单应用程序的代码可在 github 上找到。它包含一个用于创建 的 xcode 项目.dylib
和一个使用.dylib
来传递通知的 netbeans 项目。
我找到了一个可能对你有用的解决方案,你可以用来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
的通知
当应用程序更新到 Growl 2.0 时,一种可能的解决方案是 Growl,这会将 Growl 通知转发到通知中心。
咆哮2的相关资料
使用MoutainGrowl可以使用当前版本转发 Growl 消息
在 Java 下可以通过libgrowl或jgntp使用 Growl
也许它不是最干净的解决方案,它对用户有一些要求,但它绝对是一个有效的解决方案
我建议你看看 IntelliJ IDEA 如何处理MountainLionNotifications和GrowlNotifications中的通知。
正如其他答案中所建议的,它使用 JNA 来操作 NSObjects。