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