我在我的应用程序中为 URL 安装了 Apple 事件处理程序:
OSStatus e = AEInstallEventHandler( kInternetEventClass,
kAEGetURL,
NewAEEventHandlerUPP(AppleEventProc),
(SRefCon)this,
false);
如果我的应用程序正在运行,这将有效。但是,如果我的应用程序未运行,则在浏览器中单击 URL 会启动应用程序,但我的处理程序没有收到 Apple 事件。我对 AEInstallEventHandler 的调用是在我的应用程序的启动阶段,在它到达消息循环之前。这不是我做的第一件事,但也不算太远。(显然我已经正确设置了 plist,因为我在运行时收到了事件)
关于如何使它工作的任何想法?
有趣的是,当 Chrome 开始处理 mailto URL 时,它会在命令行上传递“-psn_0_5100765”。这对我没有任何意义,有人知道它想告诉我什么吗?
注意:我已经设置了 Apple Event 调试并再次运行它。安装回调处理程序后,我肯定会在启动时收到 GURL 事件。但是我仍然无法弄清楚为什么我的回调没有被那个事件调用。