Mac OS Push-уведомления с Java - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу, чтобы в моем проекте JavaFX были push-уведомления в стиле Mac OS, что оказалось на самом деле очень трудным.

Я следовал подходу, описанному в принятом ответе: Использование 10.8 Центра уведомлений в Java

Я клонировал связанный репозиторий github . Из проекта Xcode я экспортировал файл .dylib и переместил его в / usr / local / lib . Я взял на себя Java-интерфейс для моего проекта.

interface NsUserNotificationsBridge extends Library {
    NsUserNotificationsBridge instance = (NsUserNotificationsBridge)
            Native.loadLibrary("/usr/local/lib/NsUserNotificationsBridge.dylib", NsUserNotificationsBridge.class);

    public int sendNotification(String title, String subtitle, String text, int timeoffset);
}

Использование INsUserNotificationsBridge.instance.sendNotification(params...) Теперь я могу отправлять push-уведомления!

MacOS Notification when running my project with IntelliJ

Это работает даже при работе прямо из IDE (IntelliJ). В противовес примечанию автора, что

Если ваше java-приложение не входит в комплект приложений, тогда уведомления не будет доставлено.

Это уже удивляет меня. Я строю один JAR-артефакт. Запускаем банку: все нормально, пуш-уведомление показывается. Объединение его в приложение: все хорошо, но без push-уведомлений! Также нет ошибок. Так что произошло совершенно противоположное тому, что написал автор!

(см. Мой Info.plist )

Что я сделал не так? Почему он не отображается при запуске как .app? Может быть, есть еще лучший способ сделать push-уведомления MacOS с помощью Java? Я уже знаю о способе выполнения appleScript, но мне не нравится его поведение.

Я на Java 9, кстати.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...