从 Safari 应用程序扩展关闭标签

Closing a Tab from a Safari App Extension

我很难找到一种方法来关闭 Safari 应用程序扩展中的标签页。

我可以用

打开一个标签页
SFSafariApplication.getActiveWindow(completionHandler: { 
    [=10=]?.openTab(with: url, makeActiveIfPossible: true) 
})

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

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

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

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);