从 Chrome 扩展程序与 MacOSX 应用程序对话

hoc*_*bro 4 macos objective-c google-chrome-extension

我的浏览器中运行着一个 Chrome 扩展程序。我还有一个在 Xcode 中用 Swift/Objective-c 编写的 Mac OSX 应用程序。我想知道这个 chrome 扩展如何与同一台计算机上的 Mac OSX 应用程序通信。

我知道 Chrome 扩展 API,但不知道如何捕获 Chrome 在 Swift 中发送的信息。有谁知道如何做到这一点?

谢谢

Xan*_*Xan 5

您可以采取两种广泛的方法。

  1. 本机消息传递 API。这确实有一个限制,即 Chrome 必须启动进程(并通过 STDIO 与其通信) - 您无法附加到现有进程。好处是——沟通渠道非常安全。

  2. 您的本机应用程序可以在本地端口上公开 Web 服务器(或者更好的是 WebSockets 服务器)。然后,扩展程序可以尝试连接到此端口并与您的应用程序通信。缺点是任何东西(至少在机器上)都可以连接到您的本机应用程序。

    这是一种经常使用的方法;例如,1Password 或各种 IDE 集成就是以这种方式工作的。

如果应用程序未运行,您可以结合使用这两种方法来使用“启动器”本机主机启动应用程序。