Qt WebView - 拦截加载JS/CSS库以加载本地库

Ber*_*ker 6 qt pyqt url-scheme qwebview pyqt5

我一直在寻找一段时间通过文档来找到实现这一目标的方法,但尚未成功.基本的想法是,我有一个html,我通过Qt的webview加载.可以将相同的内容导出到单个html文件中.

该文件使用Bootstrap和jQuery等库.目前我通过CDN加载它们,这在网上很好用.但是,我的应用程序还需要脱机运行.所以我正在寻找一种方法来拦截Qt中的库加载并改为提供本地保存的文件.我已经尝试安装https QWebEngineUrlSchemeHandler,但似乎从来没有触发过requestStarted方法.

(PyQT example follows)
QWebEngineProfile.defaultProfile().installUrlSchemeHandler(b'https', self)
Run Code Online (Sandbox Code Playgroud)

如果我为该方案使用不同的文本并将其嵌入到它所使用的页面中,那么我的假设是它不起作用,因为Qt已经注册了它的默认处理程序.但是这种不同的方案在文件导出中会失败.

无论如何,回到核心问题; 有没有办法拦截库的加载,或仅在Qt内专门更改url方案?

进一步使用QWebEngineUrlRequestInterceptor,现在将https请求重定向到我自己的uri,它有一个uri处理程序.但是,请求永远不会通过它,因为:重定向位置'conapp://webresource/bootstrap.min.css'对于跨源请求有一个不允许的方案.如何将自己的conapp uri计划列入白名单?

Ber*_*ker 0

所以,我最终采用的解决方案是,首先引入 jinja 模板。然后,使用这些模板将根据导出或内部使用设置变量和块,从那里我不再需要拦截器。