需要从 Chrome 个打包应用程序向网页发送消息

Need to send a message from Chrome Packaged App to a web page

我需要从 chrome 打包的应用程序向应用程序外部的网页发送消息。使用

从网页向打包的应用程序发送消息没有问题
chrome.runtime.sendMessage(extID,toSend, function(response) {
   console.log("messag sent to " + extID);
   if(response){
    console.log(response.received);
   }
   else {
   console.log("no reply");
   };
});

我可以从打包的应用程序中得到回复。没问题。但我需要继续将信息从应用程序发送到页面,而不是单个回复。

我尝试在应用程序端使用此代码:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
  chrome.tabs.sendMessage(tabs[0].id, msg, function(response) {
  console.log(response.farewell);
  });
  });
}

但它无法将 chrome.tabs 识别为有效对象。当我添加:"tabs" 到 manifest.json 的权限部分时,它告诉我打包的应用程序不支持选项卡权限。

除了对从页面本身发送的消息的简单响应之外,还有什么方法可以将消息从 Chrome 打包的应用程序发送到外部网页?

您需要在清单 externally_connectable 中包含您发送的网站域,并且您需要使用 chrome.runtime.onMessageExternal 或 chrome.runtime.onConnectExternal 这都在 documentation.