首页 > 解决方案 > QWebEngine 5.7.1 离线导航加载缓存

问题描述

我正在尝试使用 QWebEngine 开发 Web 应用程序,但在处理离线状态时遇到问题,因为我总是被重定向 o Chromium 错误页面“没有 Internet 连接”。我读到 QWebEngine 使用 Chromiums 网络堆栈而不是 QNetworkAccessManager。关于这个系统,我有几个问题:

a) 有没有办法绕过 QtWebEngine 网络堆栈并使用 QNetworkAccess 管理器来存储和加载缓存?

b) 可以使用类似于 chrome://flags/#show-saved-copy 的地址在 chrome 中设置离线设置吗?

c) 是否可以存储最后一个网站 html 页面,并且一旦系统检测到离线状态重定向到存储在内存中的本地 html?

d) 在 qt 5.7.1 的 QWebEngine 中,无法在离线状态下显示按钮“显示保存的副本”?

标签: c++qtcachingchromiumqwebengineview

解决方案


[是]没有办法使用绕过QtWebEngine网络堆栈[...]?

有。它需要将 Chromium 进程与 QtNetwork 模块链接,并使用 Qt 重新实现其网络。这不是一项微不足道的任务,但也不是一项不可逾越的任务。请参阅Blink Network Stack 的此页面以供参考,并与 Qt 提供的内容进行比较。


推荐阅读