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

eCo*_*Evo 6 google-chrome google-chrome-extension google-chrome-app chrome-native-messaging

Chrome开发人员文档指的是Native Messaging直接通过Chrome扩展程序或应用与其他桌面应用程序通信的内容.

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

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

原生消息在Windows和Mac上的功能是否相同?

Rob*_*b W 13

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

因此,默认情况下,任何桌面应用程序都不太可能支持本机消息传递.此术语是Chrome/Chromium特有的,可能不熟悉Chrome/Chromium的开发人员可能无法理解.虽然每个有能力的开发人员都应该能够在阅读本机消息传递文档后获得本机消息传递.

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

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

  • 我是一个称职的开发人员,我无法从文档中获取本机消息,因为它不完整 - 没有讨论如何编写,配置,安装本机应用程序,没有提到Web上其他地方提到的陷阱.我得到了它的工作,但我必须找到多个其他来源,而不是一个单一的来源,把它们放在一起. (3认同)
  • TL;DR:如果你不是自己编写应用程序,你可能不会让它与 Native Messaging 一起工作。 (2认同)
  • 没有讨论如何编写、配置、安装本机应用程序,没有提及网络上其他地方提到的陷阱,包括清单名称必须全部小写,并且控制台应用程序将不可见。没有讨论错误条件和消息、如何查看它们以及它们的含义。更不用说您必须考虑系统的字节顺序,以及如何处理代码中的字节顺序。 (2认同)
  • 我通过阅读其他人的作品知道了这一切。我是在回应“尽管每个有能力的开发人员在阅读文档后都应该能够使本机消息传递工作”的声明。文档是不够的,您必须阅读其他内容,例如您在此页面上的评论。 (2认同)