Использование центра уведомлений на Mac, как избежать Obj-C / Obj-C и QT

#c #macos

#c #macos

Вопрос:

У меня есть CLI-приложение, из которого я хочу отправить уведомление в центр уведомлений на macOS. Приложение запрограммировано на C 14

Одно из требований к приложению — только C ! Моя проблема в том, что я не могу найти способ отправки уведомления через ядро или Foundation без использования Obj-C и Obj-C . Так можно ли этого достичь на чистом C ? и если да, то как?

Установка приложений, таких как terminal-notify, не является вариантом, поскольку она будет выполняться на клиентских компьютерах, и я не собираюсь устанавливать приложения за их спиной

Ответ №1:

Вы можете использовать system для отображения вашего уведомления с помощью AppleScript.

например

 system("osascript -e 'display notification "message" with title"title" subtitle "subtitle"'");
  

Комментарии:

1. Могу ли я как-то сделать, чтобы не отображалось, что уведомление отправляет редактор сценариев? — Это может быть временное решение, хотя фанки: D

2. Я так не думаю, нет. Я думаю, что уведомление просматривает «пакет» приложения, которое его отправило, и использует это для вывода значка / названия приложения / и т.д. Может быть, есть способ «обмануть» это, но я не знаю…

3. Черт возьми, тогда мой руководитель проекта, вероятно, убьет меня, если я его использую :/

4. Я думаю, что вашим единственным другим вариантом будет отправить пакет вместе с вашим приложением, который вы можете использовать для отправки уведомлений (на этом этапе вы могли бы также использовать terminal-notifier). Это не обязательно «устанавливать» точно, но в зависимости от того, как вы отправляете свое приложение, это может быть для вас вариантом, а может и не быть.

5. это будет невозможно : (