什么是应用程序之间的Native Messaging以及它如何工作?

时间:2014-08-06 20:15:08

标签: google-chrome google-chrome-extension google-chrome-app chrome-native-messaging

Chrome开发人员文档指的是名为Native Messaging的内容,可直接通过Chrome扩展程序或应用与其他桌面应用程序进行通信。

如何判断桌面应用程序何时提供此类本机消息以及它可以接受哪种通信?有没有办法让应用程序公开它将要传达的内容?

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

Windows和Mac上的本机消息功能是否相同?

1 个答案:

答案 0 :(得分:11)

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

因此,默认情况下,任何桌面应用都支持本机消息传递,这非常不太可能。此术语是Chrome / Chromium特有的,可能不熟悉Chrome / Chromium的开发人员可能无法理解。虽然每个有能力的开发人员都应该能够在阅读documentation of native messaging.

后获得原生信息

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

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