在OS X上从NPAPI调用外部可执行文件?

时间:2010-10-01 02:35:56

标签: macos system npapi

我正在OS X上开发一个应用程序(下载管理器类型),我希望通过Mozilla插件API NPAPI与主要的Mac浏览器(Safari,Firefox,Chrome,Opera,Camino)集成。我基本了解如何在Mac上注册我的应用程序来处理特定的URL和文件类型(通过Launch Services API,info.plist文件等),我也理解我可以注册特定的MIME类型在NPAPI中。但是,我发现NPAPI文档中几乎没有与外部应用程序集成的钩子,即在单击超链接并将此数据传递到外部应用程序时通过NPN_GetURL()获取URL。我发现调用外部应用程序的唯一引用是C中的system函数,我发现很难相信这是它可以完成的唯一方法。我知道其他Mac应用程序(下载管理器)能够以这种方式与浏览器集成,但似乎很少有关于它的文档。我误解了NPAPI的目的吗?

2 个答案:

答案 0 :(得分:1)

是的,你误解了NPAPI的目的。对于拦截点击链接和更改浏览器行为等内容,您需要编写browser extensions,而不是插件。

见:

答案 1 :(得分:0)

NPAPI的实际API非常有限;他们通过直接系统调用做了多少插件。 system不是您唯一的选择 - 您可以使用任何任何OS X应用程序(NSWorkspace,Apple事件,IPC到launchd - 注册服务等等) - 但是你不会在NPAPI中找到你想做的事情。