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 *) = 0
  • 34 public functions inherited from QObject

Additional Inherited Members

  • 1 property inherited from QObject
  • 1 public slot inherited from QObject
  • 2 signals inherited from QObject
  • 1 public variable inherited from QObject
  • 10 static public members inherited from QObject
  • 9 protected functions inherited from QObject
  • 2 protected variables 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 *)