0

我很难找到从 Safari 应用程序扩展中关闭选项卡的方法。

我可以打开一个标签

SFSafariApplication.getActiveWindow(completionHandler: { 
    $0?.openTab(with: url, makeActiveIfPossible: true) 
})

然而,返回的 SFSafariTab 和 SFSafariWindow 都没有close()(或performClose())。

我可以向扩展的 JS 端发送友好消息并运行window.close();,但这仅限于也通过 Javascript 创建的选项卡。用户打开的任何选项卡,或被target="_blank"阻止。

第三个选项似乎是已弃用的 Safari JS Extension API。我还没有成功地完成这项工作,在这样的死胡同上投入时间感觉很恶心。

4

1 回答 1

2

现在在 safari 12.1 中可以关闭当前选项卡。

/// Closes this tab. If this is the last tab in its window, the window is also closed.
- (void)close SF_AVAILABLE_MAC_SAFARI(12_1);
于 2019-04-22T06:23:24.713 回答