safari-app-extension - 如何在 Safari App Extension 中识别选项卡(或获取其 ID)?
问题描述
我正在开发一个 Safari 应用程序扩展,我想识别打开的选项卡。我发现没有 id 或没有办法做到这一点。
Chrome 有一个很棒的 API 可以做到这一点:https ://developer.chrome.com/extensions/tabs 。如何使用 Safari 应用程序扩展(在 Swift 中)做到这一点?
Safari 选项卡 API 很差,不包含 ID(https://developer.apple.com/documentation/safariservices/sfsafaritab)
解决方案
你说的对。API 并不容易使用。但是,有一种方法可以获取 ID。SFSafariPage
本身。
SFSafariPage
采用NSSecureCoding
. _ 您可以使用savedPage.isEqual(newPage)
来比较您是否来自同一页面getActiveTab
或其他内容。页面是指针或代理。但内容是独一无二的。
PS你应该非常小心SFSafariExtensionHandler
。处理程序始终是一个新对象。使用单例模型保存页面索引可以确保数据不会丢失。
推荐阅读
- java - String 对象被实习后的状态
- reactjs - react native fs readDir 结果在渲染中为空
- docker - 我们对 docker 容器有某种超时选项吗?
- python - 如何将参数传递给 StringVar 的回调?
- .htaccess - ssl 下的所有页面,除了 index.html
- python - 使用 Postgres 时 AWS Beanstalk 上的 Django 错误
- mysql - 无法在 Ubuntu 16.04 上使用 docker 启动 mysql
- python - Flask App 访问类中定义的路由
- jquery - AttributeError: 'NoneType' 对象没有属性 'split',使用 ajax 向 django 发送 post 请求
- raku - 在 Perl 6 中,如何将模块的 pod 保留在文件的底部,同时仍然使用声明器块来记录方法/子程序?