QWebEngineUrlSchemeHandler Class

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

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

This class was introduced in Qt 5.6.

Public Functions

QWebEngineUrlSchemeHandler(QObject *parent = Q_NULLPTR)
virtual ~QWebEngineUrlSchemeHandler()
  • 30 public functions inherited from QObject
typedef QObjectList
QList<T> qFindChildren(const QObject *obj, const QRegExp &regExp)
T qobject_cast(QObject *object)
T qobject_cast(const QObject *object)

Macros

Additional Inherited Members

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

Detailed Description

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.