Я обрабатываю запросы, установив QWebEngineUrlRequestInterceptor
. Это прекрасно работает, но QWebEngineUrlRequestInfo
не имеет headers()
свойства. Я могу только добавить новый заголовок QWebEngineUrlRequestInfo::setHttpHeader
. Я поискал решение и нашел, что я также могу установить QWebEngineUrlSchemeHandler
, но, похоже, он не работает или не соответствует ожиданиям. Я инициализирую как предложено в do c:
int main(int argc, char *argv[])
{
QWebEngineUrlScheme scheme("myscheme");
scheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
scheme.setDefaultPort(2345);
scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
QWebEngineUrlScheme::registerScheme(scheme);
QApplication a(argc, argv);
// installUrlSchemeHandler does not take ownership of the handler.
MySchemeHandler *handler = new MySchemeHandler(&a);
QWebEngineProfile::defaultProfile()->installUrlSchemeHandler("myscheme", handler);
....
}
Заголовок:
class MySchemeHandler : public QWebEngineUrlSchemeHandler
{
Q_OBJECT
public:
MySchemeHandler(QObject *parent = nullptr);
void requestStarted(QWebEngineUrlRequestJob *request) override;
};
cpp:
MySchemeHandler::MySchemeHandler(QObject *parent)
: QWebEngineUrlSchemeHandler(parent)
{
}
void MySchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)
{
qDebug() << "test";
}
Но requestStarted
- это никогда не срабатывает