Chrome javascript 和本机 Windows 代码之间的通信
Communication between Chrome javascript and native Windows code
我需要在 Chrome 上 运行 的 Web 应用程序和 Windows 上的本机代码之间建立一个通信通道。当 JS 请求时,我需要 运行 本地代码并将结果从本地代码传回。环境是完全托管的,因此我可以设置信任和组策略等。
我可以考虑准备一个 运行 在本地(并允许 CORS)的小型 Web 服务并从 javascript 调用此服务,但在这种情况下我需要 运行此代码永远。
任何建议都会很有帮助。如果可能的话,我可以尝试 Windows 注册表 write/read、管道、共享内存、MMF 或任何其他方式。
谢谢
有一种方法可以在不使用扩展的情况下与本地进程进行通信。 Websockets 不限于与网页相同的域进行通信,它们可以与本地主机上的 WebSocket 服务器进行通信。您必须将您的本机代码包装在 WebSocket 服务器中,尽管库可用于此。
另一种方法是本地消息传递,但它需要浏览器扩展:
Native messaging enables a WebExtension to exchange messages with a
native application installed on the user's computer.
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging
https://developer.chrome.com/extensions/nativeMessaging
我需要在 Chrome 上 运行 的 Web 应用程序和 Windows 上的本机代码之间建立一个通信通道。当 JS 请求时,我需要 运行 本地代码并将结果从本地代码传回。环境是完全托管的,因此我可以设置信任和组策略等。
我可以考虑准备一个 运行 在本地(并允许 CORS)的小型 Web 服务并从 javascript 调用此服务,但在这种情况下我需要 运行此代码永远。
任何建议都会很有帮助。如果可能的话,我可以尝试 Windows 注册表 write/read、管道、共享内存、MMF 或任何其他方式。
谢谢
有一种方法可以在不使用扩展的情况下与本地进程进行通信。 Websockets 不限于与网页相同的域进行通信,它们可以与本地主机上的 WebSocket 服务器进行通信。您必须将您的本机代码包装在 WebSocket 服务器中,尽管库可用于此。
另一种方法是本地消息传递,但它需要浏览器扩展:
Native messaging enables a WebExtension to exchange messages with a native application installed on the user's computer.
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging https://developer.chrome.com/extensions/nativeMessaging