Revision control

Copy as Markdown

// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QOHOSWEBVIEWCONTROLLER_H
#define QOHOSWEBVIEWCONTROLLER_H
#include "qohoswebcomponentlistener.h"
#include <QtCore/private/qcore_ohos_p.h>
#include <QtCore/private/qohoscommon_p.h>
#include <QtCore/qglobal.h>
#include <QtWebView/qwebviewsettings.h>
#include <arkui/native_node.h>
#include <memory>
#include <string>
QT_BEGIN_NAMESPACE
class QOhosWebViewController
{
public:
QOhosWebViewController(const QOhosWebViewController &) = delete;
QOhosWebViewController &operator=(const QOhosWebViewController &) = delete;
virtual ~QOhosWebViewController();
virtual ::ArkUI_NodeHandle createEmbeddedWebComponentNodeOrFail(
std::shared_ptr<QOhosWebComponentListener> webComponentListener,
QObject *webComponentListenerContext) = 0;
virtual bool tryLoadUrl(const std::string &url) = 0;
virtual std::string getUrl() = 0;
virtual bool tryLoadHtml(const std::string &data, const std::string &mimeType,
const std::string &encoding, const std::string &baseUrl,
const std::string &historyUrl) = 0;
virtual bool canGoBack() = 0;
virtual bool canGoForward() = 0;
virtual void goBack() = 0;
virtual void goForward() = 0;
virtual void refresh() = 0;
virtual void stop() = 0;
virtual std::optional<std::string> tryRunJavaScript(const std::string &script) = 0;
virtual void setAttribute(QWebViewSettings::WebAttribute attribute, bool enabled) = 0;
virtual bool testAttribute(QWebViewSettings::WebAttribute attribute) const = 0;
virtual bool trySetCookie(const std::string &url, const std::string &cookie) = 0;
virtual std::optional<std::string> tryFetchCookie(const std::string &url) = 0;
virtual bool tryClearAllCookies() = 0;
virtual std::vector<std::pair<std::string, std::string>> fetchAllCookies() = 0;
virtual void bindQrcSchemeHandler() = 0;
virtual bool trySetCustomUserAgent(const std::string &userAgent) = 0;
protected:
QOhosWebViewController();
};
std::shared_ptr<QOhosWebViewController> makeOhosWebViewController();
void initializeOhosWebEngine();
QT_END_NAMESPACE
#endif // QOHOSWEBVIEWCONTROLLER_H