9

Chrome 开发者文档指的是Native Messaging直接从 Chrome 扩展程序或应用程序与其他桌面应用程序通信的东西。

我如何判断桌面应用程序何时具有此类可用的本机消息传递以及它可以接受什么样的通信?有没有办法让应用程序公开它将传达的内容?

如果我需要与该桌面应用程序的原始开发人员交谈,这是否是最常见的术语(本机消息传递),以便他们理解我的意思?

本机消息传递功能在 Windows 和 Mac 上是否相同?

4

1 回答 1

19

如果该应用程序注册为“本机消息传递主机”,则扩展程序只能与本机桌面应用程序通信。这意味着在预定义的、特定于平台的位置必须有一些清单文件,声明应用程序具有“本地消息传递”功能以及允许哪些扩展与该本地消息传递主机通信。

因此,默认情况下,您的任何桌面应用程序都极不可能支持本机消息传递。该术语是特定于 Chrome/Chromium 的,不熟悉 Chrome/Chromium 的开发人员可能无法理解。尽管每个有能力的开发人员都应该能够在阅读原生消息传递的文档后让原生消息传递工作。

目前,唯一受支持的与本机应用程序通信的方式是通过标准输入和输出管道(stdin / stdout),通过一个简单而严格的协议。如果桌面应用程序具有命令行界面,那么您可以轻松编写代理应用程序,充当本机消息传递主机并与桌面应用程序交互。它本质上是您的 Chrome 扩展程序和其他一些应用程序之间的桥梁。此代理应用程序可以用任何支持标准输入/标准输出的语言编写,并且不需要桌面应用程序的原始开发人员的任何合作。

本机消息传递协议在所有平台上都是相同的,但您必须考虑系统的字节顺序,并且清单文件的位置也取决于平台。

于 2014-08-06T21:08:33.430 回答