基本上我想要做的是拥有一个应用程序(一个进程),它将一直保持打开状态,并有一个线程正在收听Chrome的原生消息。
我目前的理解是,Chrome会针对每封原生邮件启动单独的流程。如果我使用Mutex创建单个进程,那么我将无法将标准输入传递给主进程,因为我必须首先使用适当的参数再次启动进程。 Chrome可能会以类似方式执行此操作,因此需要多个流程。
在我看来,必须有一个通过套接字或类似方式进行通信的中间过程,以通知Chrome消息的主要过程。是这样的吗?有没有办法使用单个流程实现这个?
很感激输入!
另外,作为旁注,Chrome似乎默默地启动其原生消息传递应用程序(无显示)。这是我做错了还是这是正常的?
答案 0 :(得分:2)
使用chrome.runtime.connectNative,您可以创建一个长时间运行的本机实例。然后,您需要在后台脚本中保留该javascript引用,以便重用它。
的manifest.json;
"background": {"scripts": ["background.js"]},
background.js;
var nativePort = null;
function getNativePort(){
if (nativePort == null)
nativePort = chrome.runtime.connectNative("...");
}
如果您要从内容脚本发送消息,则必须先将其转发到后台脚本。