代码之家  ›  专栏  ›  技术社区  ›  Nicholas DiPiazza

如何从一个扩展启动一个自定义URI而不留下一个空的标签页?

  •  0
  • Nicholas DiPiazza  · 技术社区  · 6 年前

    我正在尝试创建一个chrome扩展来打开一个自定义URI(然后在另一个注册到系统的应用程序中打开一个注册的协议URI)。

    mycustomapp://input-arguments-here

    如果我创建一个带有锚的HTML页面 <a href="mycustomapp://input-arguments-here">Link</a> input-arguments-here 一如预期。

    我已经创建了一个Chrome扩展来打开我的自定义URI。

    function openCustomURIScheme(info, tab) {
      chrome.tabs.create({
          url: "mycustomapp:/" + info.linkUrl
        },
        function(newTab) {
          setTimeout(function() {
            chrome.tabs.remove(newTab.id);
          }, 250);
        }
      );
    }
    

    在Chrome中,这不起作用。当 chrome.tabs.remove(newTab.id) 在外部应用程序中打开链接的提示。

      setTimeout(function() {
        chrome.tabs.remove(newTab.id);
      }, 250);
    

    它可以工作,但是每次启动自定义URI时都会得到一个空选项卡。

    如何从chrome扩展打开自定义URI而不留下空白的选项卡窗口?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Nicholas DiPiazza    6 年前

    这是我解决问题的方法。

    比如:

    要完成安装,请单击下面的链接,然后

    然后,现有的解决方案在选项卡中打开它,然后在一个小的ms延迟后关闭选项卡,就像在firefox上一样,因为没有更多的提示。