将数据从HTML5应用程序传输到在客户端上下文下运行的本机应用程序

时间:2017-12-21 04:03:42

标签: c++ angularjs html5 google-chrome native

我有两个应用程序,App1和在Windows7客户端上下文中运行的App2。

App1: List files. and allows user to select a file and trigger load file to App2. This is HTML5 application ( Angular 2) hosted in IIS.
App2: Allows to view the files. Native C++ application. 

我想将特定的选定文件详细信息从App1发送到App2。 我尝试了以下调用选项:

  1. ActiveX控件:

    App2是一个activeX控件,App1基本上调用一个ASP页面,该页面内部运行一个java脚本来加载App2 ActiveX并传输详细信息。 但这只适用于IE。没有定期修复其他网络浏览器。

  2. 网络套接字:

    App2托管websocket服务器,App1 angular app调用Web套接字API将数据传输到App1。 这迫使我在客户机中托管网络服务器代码,这不是很好的IMO。

  3. 有哪些其他选项可用于将数据从HTML5应用程序传输到在客户端上下文下运行的本机应用程序?

2 个答案:

答案 0 :(得分:0)

您可以使用Chrome Native Messaging API。见这里的例子: https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging

试试这个例子: (您需要安装python才能使用此示例。)

  1. 从上面的链接下载示例
  2. 使用install_host.bat
  3. 注册主机
  4. 在chrome:// extensions /中启用开发人员模式,并从/ app目录
  5. 加载解压缩的扩展程序
  6. 转到chrome:// apps /并启动Native Messaging示例应用
  7. 按连接
  8. 如果一切顺利,该应用将启动,您就可以在Chrome和该应用之间交换消息。

    enter image description here

    现在用app2.exe替换native-messaging-example-host.bat并相应地调整脚本。

    希望它有所帮助。 :)

答案 1 :(得分:0)

取自此answer

您想要创建Asynchronous Pluggable Protocol Handler

以下是registering an Application Protocol的指南。