我想在 Messages.app中监控一个或我的好友的状态。
到目前为止,我IMService
通过注册IMPersonStatusChangedNotification
来自IMService 的通知中心的通知,一直在使用没有任何问题。
[IMService notificationCenter]
但是这个类在 Mavericks AND Returns中被弃用了nil
。
我想到了两个不满意的选择:
使用 Messages 的 AppleScript 界面每隔几秒轮询一次,但这似乎与 Mavericks 的节能精神背道而驰。我宁愿收到通知。这个应用程序的唯一目的是监控好友的状态,所以它真的不应该是一个能源猪!
使用 Messages 的 AppleScript 事件处理程序
on buddy became available
并on buddy became unavailable
通知我的应用程序(通过 AppleScript)好友的状态已更改,但这需要在 Messages 的首选项中手动添加 AppleScript。这会干扰用户已经在 Messages 中使用的任何自定义 AppleScript。另外,我不清楚空闲状态是如何处理的。
有没有办法在小牛的好友状态发生变化时收到通知?如果不是,那么监控好友状态的最佳方法是什么?
特定服务是 GoogleTalk,以防万一这使思考变得更容易。
编辑:最好的解决方案可能是构建一个非常轻量级的 XMPP 客户端,以便完全不依赖 Messages.app 或系统。关于如何做到这一点的任何指导?