从 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);
我很难找到一种方法来关闭 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);