2017-08-09 13 views
8

Est-il possible d'écouter/observer les nouvelles notifications reçues par macOS?Observer les nouvelles notifications système OSX

Je veux dire comme quand un nouveau iMessage ou un message Slack est reçu (donc en gros tout ce qui provoque NotificationCenter pour afficher une notification)

Répondre

4

Réponse courte: Il est impossible.

Vous ne pouvez pas observer les notifications utilisateur envoyées par les applications, sauf si une application fournit une API spécifique. Par exemple, le dictionnaire AppleScript de iMessage et Mail contient des événements auxquels les scripts peuvent répondre. Cependant, les notifications des utilisateurs sont encapsulées dans l'application cible.


Il y a une classe mondiale de notification du nom DistributedNotificationCenter, un mécanisme d'envoi de notification permettant la diffusion des notifications à travers les frontières de la tâche. Certains processus envoient des notifications distribuées mais il s'agit d'une fonctionnalité complètement différente de UserNotification. Par exemple, le processus du moteur TimeMachine backupd envoie des notifications distribuées lors de l'exécution d'une sauvegarde.

Vous pouvez souscrire à toutes les notifications distribuées avec

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

mais je doute que iMessage envoie une notification distribué lorsqu'un message est reçu.