首页 > 解决方案 > 如何在 Safari App Extension 中识别选项卡(或获取其 ID)?

问题描述

我正在开发一个 Safari 应用程序扩展,我想识别打开的选项卡。我发现没有 id 或没有办法做到这一点。

Chrome 有一个很棒的 AP​​I 可以做到这一点:https ://developer.chrome.com/extensions/tabs 。如何使用 Safari 应用程序扩展(在 Swift 中)做到这一点?

Safari 选项卡 API 很差,不包含 ID(https://developer.apple.com/documentation/safariservices/sfsafaritab

标签: safari-app-extension

解决方案


你说的对。API 并不容易使用。但是,有一种方法可以获取 ID。SFSafariPage本身。

SFSafariPage采用NSSecureCoding. _ 您可以使用savedPage.isEqual(newPage)来比较您是否来自同一页面getActiveTab或其他内容。页面是指针或代理。但内容是独一无二的。

PS你应该非常小心SFSafariExtensionHandler。处理程序始终是一个新对象。使用单例模型保存页面索引可以确保数据不会丢失。


推荐阅读