gpt4 book ai didi

google-chrome - Chrome 扩展程序,消息 : getting port status

转载 作者:行者123 更新时间:2023-12-01 03:35:45 25 4
gpt4 key购买 nike

我正在尝试在应用程序(而不是内容脚本)中获取端口的状态。当我做 :
this.port = chrome.runtime.connect("okcbadfdlhldjgkbafhnkcpofabckgde");
我得到一个有效的 port对象,但无论如何我都无法确定是否可以使用该端口(如果无法访问扩展名,我什至不会收到 disconnect 事件)。

我发现具有连接状态的唯一方法是在执行 this.port.postMessage 时实际捕获异常。 .

有没有更好的办法 ?

https://developer.chrome.com/extensions/runtime#method-connect

更新

  • 在 Linux Ubuntu 上运行版本 48.0.2564.97(64 位)
  • 没有跨扩展消息,只是应用到/来自扩展
  • 分机 source code但请注意,由于这个问题中提出的问题,我已经开始实现另一种扩展策略。
  • 最佳答案

    您的扩展程序使用 background-scriptchrome.runtime.onMessageExternal 提供监听器功能事件。此事件用于监听传入消息,通过调用 chrome.runtime.sendMessage 从外部网页脚本(或其他扩展)发送。方法。

    由于您的扩展没有为 chrome.runtime.onConnectExternal 提供监听器功能事件,chrome.runtime.connect不能为您的分机工作。

    就知道连接状态而言,在这种情况下,一个简单的 try-catch块足以知道扩展是否支持 port或不。如果是,您需要查看 manifest对应于此扩展 - 查看是否允许特定主机发送消息。

    通过在后台脚本中添加以下代码行,我能够向您的扩展程序发送消息(参见附图)。除此之外,我还添加了matches主机字符串 - www.example.org在 list 中。

    chrome.runtime.onMessageExternal.addListener(
    function(request, _sender, sendResponse) {
    console.log(request);
    ...
    }
    );

    image-1

    关于google-chrome - Chrome 扩展程序,消息 : getting port status,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106931/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com