使用 SFSafariViewController 缓存网站以供离线使用

Caching websites for offline use with SFSafariViewController

我正在使用以下代码在我的应用程序中显示网站。

let webVC = SFSafariViewController(url: myUrl)
present(webVC, animated: true)

现在,我想添加离线阅读。我知道 iOS 有一个阅读列表,它显然缓存了供离线使用的文章,但我在 SFSafariViewController 或其他地方的文档中找不到任何相关内容。

我能找到的唯一相似的 post 是这个 (),尽管它依赖于 WKWebView 和编写自定义 Web 存档导出器。

考虑到 SFSafariViewController 较新且推荐的应用内方法,并且 Safari 本身对 iOS 阅读列表使用离线模式,因此必须有更好的方法来实现 SFSafariViewController 的离线功能。有帮助吗?

看来你在这里运气不好。正如 this radar 所建议的那样,SFSafariViewController 甚至不从阅读列表中加载数据。

就是说,我认为除了您提供的 link 中那样,编写自定义存档导出器并使用 WKWebView 之外,没有任何可能实现您正在尝试的目标。如其documentation所述,SFSafariViewController仅支持http或httpsurl方案,因此该方法不适合它。

如果您的应用程序依赖于这个功能,那么实现类似的东西应该不会太难,可能使用 SwiftSoup 或类似的项目来提取和操作 links 以反映它们磁盘路径。