2017-08-09 71 views
8

Czy możliwe jest odsłuchiwanie/obserwowanie nowych powiadomień, które otrzymuje macOS?Obserwuj nowe powiadomienia systemowe OSX

Znaczy jak przy otrzymaniu nowej iMessage lub Slack wiadomość (więc w zasadzie wszystko, co powoduje NotificationCenter do wyświetlania powiadomień)

Odpowiedz

4

Krótka odpowiedź: To nie jest możliwe.

Nie można obserwować powiadomień użytkownika wysyłanych przez aplikacje, chyba że aplikacja udostępnia określony interfejs API. Na przykład słownik AppleScript iMessage i Mail zawiera skrypty zdarzeń, na które można odpowiedzieć. Jednak powiadomienia użytkownika są umieszczane w docelowej aplikacji.


Jest to globalna klasa powiadomienie o nazwie DistributedNotificationCenter, powiadomienie mechanizm wysyłkowy, który umożliwia transmisję powiadomień ponad granicami zadaniowych. Niektóre procesy wysyłają powiadomienia rozproszone, ale jest to zupełnie inna funkcja niż UserNotification. Na przykład proces silnika TimeMachine backupd wysyła powiadomienia rozproszone podczas wykonywania kopii zapasowej.

Możesz zapisać się do wszystkich rozproszonych powiadomień z

DistributedNotificationCenter.default().addObserver(self, selector: #selector(handleNotifications(_:)), name: nil, object: nil) 

ale wątpię, że iMessage wysyła rozproszoną powiadomienie o odebraniu wiadomości.