jld*_*ont 5 google-chrome google-chrome-extension
我正在尝试在应用程序(而不是内容脚本)中获取端口的状态。当我做 :
this.port = chrome.runtime.connect("okcbadfdlhldjgkbafhnkcpofabckgde");
我得到了一个有效的port对象,但无论如何我都无法确定是否可以使用该端口(disconnect如果无法访问扩展,我什至没有收到事件)。
我发现具有连接状态的唯一方法是在执行this.port.postMessage.
有没有更好的办法 ?
https://developer.chrome.com/extensions/runtime#method-connect
更新
您的扩展使用background-script为chrome.runtime.onMessageExternal事件提供侦听器功能的函数。该事件用于监听传入消息,通过调用该chrome.runtime.sendMessage方法从外部网页脚本(或其他扩展)发送消息。
由于您的扩展程序没有提供事件侦听器功能chrome.runtime.onConnectExternal,chrome.runtime.connect因此无法为您的扩展程序工作。
就了解连接状态而言,在这种情况下,一个简单的try-catch块就足以了解扩展port是否支持。如果是,您需要查看manifest与此扩展相对应的内容 - 以查看是否允许特定主机发送消息。
通过在后台脚本中添加以下代码行,我能够向您的扩展程序发送消息(参见附图)。除此之外,我还在清单中添加了matches主机的字符串 - 。www.example.org
chrome.runtime.onMessageExternal.addListener(
function(request, _sender, sendResponse) {
console.log(request);
...
}
);
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |