我的浏览器中运行了Chrome扩展程序。我还有一个Mac OSX应用程序,我在Xcode中用Swift / Objective-c编写。我想知道这个Chrome扩展程序如何与同一台计算机上的Mac OSX应用程序通信。
我知道Chrome扩展程序API,但我不知道如何捕获Chrome在Swift中发送的信息。有谁知道怎么做?
由于
答案 0 :(得分:2)
您可以采取两种广泛的方法。
Native Messaging API。这确实存在Chrome必须启动进程(并通过STDIO与之通信)的限制 - 您无法附加到现有进程。好处 - 沟通渠道非常安全。
您的本机应用程序可以在本地端口上公开Web服务器(或者更好的是,WebSockets服务器)。然后,扩展程序可以尝试连接到此端口并与您的应用程序通信。缺点是任何东西(至少在机器上)都可以连接到你的原生应用程序。
这是一种经常使用的方法;例如,1Password或各种IDE集成以这种方式工作。
您可以将两种方法结合使用"启动器"本机主机,如果它没有运行。