通过“本地消息传递”,应该可以在 chrome 扩展程序和本地应用程序之间进行通信。 https://developer.chrome.com/extensions/nativeMessaging
Google 甚至提供了一个示例来说明如何使用 python“主机”-app 执行此操作:https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging/host/native-messaging-example-host
我想使用这种技术在 Sublime Text 插件 (python) 和 Chrome 扩展程序之间进行通信。
- 有没有人有这方面的经验,或者可能知道一些我可以看看的开源 ST 插件?
- 你在 list 文件的
名称
和路径
中写了什么? sublime text 应用的名称和路径? - 我可以使用
stdin
和stdout
从 sublime text 插件与 chrome 通信吗?或者当您编写插件时对此有限制吗?
抱歉,如果这看起来像一个愚蠢的问题,我通常做网络开发,而不是本地开发。
最佳答案
native 消息无法连接到任意进程,因为:
- 进程必须使用指定的协议(protocol)通过
stdin
进行通信,否则 Chrome 将断开连接。我怀疑 Sublime 插件在这种情况下能否改变 Sublime 的行为。 - Chrome 将始终运行指定主机的新实例;它无法连接到现有的。
所以你假设的本地主机必须是一个单独的进程,可以独立于 Sublime 重新启动并以某种方式与 Sublime 对话。
您在这里实际上不需要本地消息传递协议(protocol)。另一种方法是使用 WebSockets:一个 Sublime 插件可以充当本地主机上的一个 WebSocket 服务器,一个扩展可以连接到它。参见 GhostText作为此类架构的示例。
关于google-chrome-extension - 使用 Sublime Text 插件中的 'Chrome Native Messaging',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591150/