首页 > 解决方案 > 使用 SFSafariViewController 缓存网站以供离线使用

问题描述

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

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

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

我能找到的唯一类似的帖子是这篇文章(Swift iOS Cache WKWebView content for offline view),尽管它依赖于 WKWebView 并编写了一个自定义 Web 存档导出器。

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

标签: swiftoffline-cachingsfsafariviewcontroller

解决方案


看来你在这里可能不走运。正如这个雷达所建议的那样, SFSafariViewController 甚至不从阅读列表中加载数据。

也就是说,除了在您提供的链接中,编写自定义存档导出器和使用 WKWebView 之外,我认为没有任何可能实现您想要实现的目标。如其文档所述,SFSafariViewController 仅支持 http 或 https url 方案,这使得这种方法不适合它。

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


推荐阅读