QWebEngineUrlSchemeHandler Class

The QWebEngineUrlSchemeHandler class is a base class for handling custom URL schemes. More...

Header: #include <QWebEngineUrlSchemeHandler>
Since: Qt 5.6
Inherits: QObject

Public Functions

QWebEngineUrlSchemeHandler(QObject *parent = Q_NULLPTR)
virtual ~QWebEngineUrlSchemeHandler()
virtual void requestStarted(QWebEngineUrlRequestJob *request) = 0
  • 31 public functions inherited from QObject

Static Public Members

const QMetaObject staticMetaObject
  • 9 static public members inherited from QObject

Additional Inherited Members

  • 1 property inherited from QObject
  • 1 public slot inherited from QObject
  • 2 signals inherited from QObject
  • 9 protected functions inherited from QObject

Detailed Description

The QWebEngineUrlSchemeHandler class is a base class for handling custom URL schemes.

To implement a custom URL scheme for QtWebEngine, you first have to create an instance of QWebEngineUrlScheme and register it using QWebEngineUrlScheme::registerScheme().

Note: Make sure that you create and register the scheme object before the QGuiApplication or QApplication object is instantiated.

Then you must create a class derived from QWebEngineUrlSchemeHandler, and reimplement the requestStarted() method.

Finally, install the scheme handler object via QWebEngineProfile::installUrlSchemeHandler() or QQuickWebEngineProfile::installUrlSchemeHandler().

class MySchemeHandler : public QWebEngineUrlSchemeHandler
{
public:
    MySchemeHandler(QObject *parent = nullptr);
    void requestStarted(QWebEngineUrlRequestJob *request)
    {
        // ....
    }
};

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 app(argc, argv);
    // ...

    // installUrlSchemeHandler does not take ownership of the handler.
    MySchemeHandler *handler = new MySchemeHandler(parent);
    QWebEngineProfile::defaultProfile()->installUrlSchemeHandler("myscheme", handler);
}

See also QWebEngineUrlScheme and WebEngine Widgets WebUI Example.

Member Function Documentation

QWebEngineUrlSchemeHandler::QWebEngineUrlSchemeHandler(QObject *parent = Q_NULLPTR)

Constructs a new URL scheme handler.

The handler is created with the parent parent.

[virtual] QWebEngineUrlSchemeHandler::~QWebEngineUrlSchemeHandler()

Deletes a custom URL scheme handler.

[pure virtual] void QWebEngineUrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request)

This method is called whenever a request request for the registered scheme is started.

This method must be reimplemented by all custom URL scheme handlers. The request is asynchronous and does not need to be handled right away.

See also QWebEngineUrlRequestJob.

© 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.