2

我有这个扩展,我想在扩展的 JavaScript 部分打开一个新选项卡。在将其迁移到Safari App Extension之前,我可以这样做

window.open(url, "_blank");

但是当我在 Safari 12 中将其作为应用程序扩展运行时,它会将当前链接添加到阅读列表 (?!)。

当我在控制台中运行上面的代码时,它会打开一个新选项卡url,但我必须在 Safari 首选项中启用弹出窗口。我在 Apple 非常糟糕的文档中找不到任何内容。

这甚至可能在“客户端”上,还是我必须在 Swift 代码中处理这个?

4

1 回答 1

5

如果您想使用 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.
        })
    }
于 2018-07-21T18:54:45.360 回答