在Safari 12 [Safari App Extension]中使用JavaScript打开新标签

时间:2018-07-16 09:42:27

标签: javascript safari safari-extension safari-app-extension

我有这个扩展,我想在该扩展的JavaScript部分中打开一个新标签。在将其迁移到 Safari App Extension 之前,我可以做

window.open(url, "_blank");

但是当我在Safari 12中将其作为App Extension运行时,它会将 current 链接添加到阅读列表(?!)。

当我在控制台中运行上面的代码时,它将打开url的新标签,但是我必须在Safari偏好设置中启用弹出窗口。我在苹果非常糟糕的文档中找不到任何内容。

这是否甚至可以在“客户端”上进行?还是必须在Swift代码中处理?

1 个答案:

答案 0 :(得分:3)

如果您想使用Safari App Extensions打开新标签,则需要使用本机代码来完成。

您可以通过获取活动窗口,然后在该窗口上调用openTab()方法来实现此目的。

以下是实现此目的的代码段:

let myUrl = URL(string: "https://google.com")


// This grabs the active window.
SFSafariApplication.getActiveWindow { (activeWindow) in

        // Request a new tab on the active window, with the URL we want.
        activeWindow?.openTab(with: myUrl, makeActiveIfPossible: true, completionHandler: {_ in
            // Perform some action here after the page loads if you'd like.
        })
    }