如何与电子中的chrome扩展背景页面通信?

Posted

技术标签:

【中文标题】如何与电子中的chrome扩展背景页面通信?【英文标题】:How to communicate with chrome extension background page in electron? 【发布时间】:2022-01-21 01:31:49 【问题描述】:

由于电子没有实现chrome.runtime.onMessageExternal。 我们如何在 main 或 renderer 进程中与 chrome 扩展后台页面进行通信?

【问题讨论】:

【参考方案1】:

其实扩展背景页是webContents之一。

    使用webContents.getAllWebContents(),您可以找到所有网页内容。 并使用wc.getType() === 'backgroundPage' 过滤。 然后加载预加载文件。

你可以在预加载文件中做任何事情。

  webContents.getAllWebContents().forEach((wc) => 
    if (wc.getType() === 'backgroundPage') 
      const preloadPath = path.join(__dirname, 'preloadForExtension.js');
      if (!wc.session.getPreloads().includes(preloadPath)) 
        wc.session.setPreloads(wc.session.getPreloads().concat(preloadPath));
      
    
  );

【讨论】:

以上是关于如何与电子中的chrome扩展背景页面通信?的主要内容,如果未能解决你的问题,请参考以下文章

如何链接到 chrome 扩展中的选项页面?

Chrome扩展中的Socket通信问题

如何在 Chrome 扩展程序中以编程方式关闭 gmail 撰写对话框

Chrome扩展中脚本的运行机制和通信方式

Chrome扩展中脚本的运行机制和通信方式

Chrome扩展中脚本的运行机制和通信方式