在osx上读取通知中心通知时,我需要启动一个应用程序。是否有用于读取通知中心通知的python库?
注意:我没有尝试任何这些,因为我现在没有运行OSX的机器,但从我搜索的内容来看:
您可以尝试在python代码中添加AppleScript片段,该片段使用系统事件和通知中心来解析所有可用的通知,并将它们返回到stdout,并直接在代码中解析输出。
获取所有可用通知的来源:https://macosxautomation.com/mavericks/notifications/01A.html.您应该感兴趣的部分是getNotificationTitles函数的代码。糟糕的是,在该实现中,您只获得它们的标题,而不是完整的通知,因此您可能必须解析不同的区域才能获得完整的通知正文。
运行它并获得结果的来源:如何在Python脚本中嵌入AppleScript?。
另一种方法是使用终端通知程序cli工具的-list参数(作为脚本中的shell命令),然后解析结果。
这个工具还有一个python包装器。该实现包含一个list()函数,它承诺只使用cli工具,而不需要从自己的代码中生成任何shell并解析它们的stdout。
我相信您将能够使用pyobjc
做到这一点。如果您查看macos通知存储库中的部分代码,就会发现userNotificationCenter_didDeliverNotification_
侦听器。这将在发送通知时获取事件。这不仅捕获您使用该应用程序传递的通知,还捕获任何通知。你可以稍微调整一下代码并尝试一下:)