我在Web扩展程序和作为本机二进制文件运行的伴随应用程序之间的本机消息传递方面遇到问题。 Java插件实质上就是这样做
let port = chrome.runtime.connectNative(applicationName);
port.onMessage.addListener(passOnResult);
// ...
// later:
port.postMessage({ ...message, "tab_id": sender.tab.id, });
两个组件之间的通信在MacOS上以及在带有Firefox的Windows上都可以正常工作。对于Windows 7(64位)上的Chrome(64位),它仅仅失败,甚至仅对于某些安装(但在那些安装上可靠)失败。而不是运行回调,我们只会听到
"Unchecked runtime.lastError: Native host has exited.", source: chrome-extension://mafj...
这似乎意味着本地应用程序在通信管道中断之前没有设法发送完整的响应消息。在Chrome而不是Firefox中,这种基本设置会导致什么问题?