观察新的系统通知 OSX
Observe for new System Notifications OSX
是否可以listen/observe 获取 macOS 收到的新通知?
我的意思是当收到新的 iMessage 或 Slack 消息时(所以基本上所有导致 NotificationCenter 显示通知的东西)
简答:不可能。
您无法观察应用程序发送的用户通知,除非应用程序提供特定的 API。例如,iMessage 和 Mail 的 AppleScript 字典包含脚本可以响应的事件。但是,用户通知封装在目标应用程序中。
有一个名为 DistributedNotificationCenter 的全局通知 class,一种通知调度机制,可以跨任务边界广播通知。 一些进程正在发送分布式通知,但它是与 UserNotification
完全不同的功能。例如,TimeMachine 引擎进程 backupd
发送分布式通知,而 运行 备份。
您可以使用
订阅所有分发的通知
DistributedNotificationCenter.default().addObserver(self, selector: #selector(handleNotifications(_:)), name: nil, object: nil)
但我怀疑 iMessage 在收到消息时会发送分布式通知。
是否可以listen/observe 获取 macOS 收到的新通知?
我的意思是当收到新的 iMessage 或 Slack 消息时(所以基本上所有导致 NotificationCenter 显示通知的东西)
简答:不可能。
您无法观察应用程序发送的用户通知,除非应用程序提供特定的 API。例如,iMessage 和 Mail 的 AppleScript 字典包含脚本可以响应的事件。但是,用户通知封装在目标应用程序中。
有一个名为 DistributedNotificationCenter 的全局通知 class,一种通知调度机制,可以跨任务边界广播通知。 一些进程正在发送分布式通知,但它是与 UserNotification
完全不同的功能。例如,TimeMachine 引擎进程 backupd
发送分布式通知,而 运行 备份。
您可以使用
订阅所有分发的通知DistributedNotificationCenter.default().addObserver(self, selector: #selector(handleNotifications(_:)), name: nil, object: nil)
但我怀疑 iMessage 在收到消息时会发送分布式通知。