QWebEngineUrlScheme 类

QWebEngineUrlScheme 类用于配置自定义 URL 方案。 更多...

头文件 #include <QWebEngineUrlScheme>
CMakefind_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmakeQT += webenginecore

公共类型

枚举Flag { SecureScheme, LocalScheme, LocalAccessAllowed, NoAccessAllowed, ServiceWorkersAllowed, …, FetchApiAllowed }
标志标志
枚举SpecialPort { PortUnspecified }
枚举类Syntax { HostPortAndUserInformation, HostAndPort, Host, Path }

公共函数

QWebEngineUrlScheme()
QWebEngineUrlScheme(const QByteArray &name)
QWebEngineUrlScheme(const QWebEngineUrlScheme &that)
QWebEngineUrlScheme(QWebEngineUrlScheme &&that)
~QWebEngineUrlScheme()
intdefaultPort() const
QWebEngineUrlScheme::Flagsflags() const
QByteArrayname() const
voidsetDefaultPort(int newValue)
voidsetFlags(QWebEngineUrlScheme::Flags newValue)
voidsetName(const QByteArray &newValue)
voidsetSyntax(QWebEngineUrlScheme::Syntax newValue)
QWebEngineUrlScheme::Syntaxsyntax() const
booloperator!=(const QWebEngineUrlScheme &that) const
QWebEngineUrlScheme &operator=(const QWebEngineUrlScheme &that)
QWebEngineUrlScheme &operator=(QWebEngineUrlScheme &&that)
booloperator==(const QWebEngineUrlScheme &that) const

静态公共成员

voidregisterScheme(const QWebEngineUrlScheme &scheme)
QWebEngineUrlSchemeschemeByName(const QByteArray &name)

详细描述

Web 引擎 URL 方案从 Web 引擎的角度描述一个 URL 方案,指定了该方案 URL 应如何解析,以及对来自此类 URL 的资源应施加哪些安全限制。

自定义URL方案必须在应用程序启动时尽早配置,在创建任何Qt WebEngine类之前。一般来说,这意味着需要在创建QGuiApplication或QApplication实例之前配置方案。

每个注册的方案配置适用于所有配置文件。

int main(int argc, char **argv)
{
    QWebEngineUrlScheme scheme("myscheme");
    scheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
    scheme.setDefaultPort(2345);
    scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
    QWebEngineUrlScheme::registerScheme(scheme);
    ...
}

要实际使用自定义URL方案,必须在配置文件中创建并注册一个QWebEngineUrlSchemeHandler。

另请参阅QWebEngineUrlSchemeHandler

成员类型文档

enum QWebEngineUrlScheme::Flag
flags QWebEngineUrlScheme::Flags

此枚举类型指定应用于URL方案的安全选项。

常量描述
QWebEngineUrlScheme::SecureScheme0x1表示URL方案可能是值得信赖的。此标志应仅应用于确保数据真实性、机密性和完整性的URL方案,无论是通过加密或其他方式。例如,安全的内置方案包括https(认证和数据加密)和qrc(仅本地资源),而http是一个不安全方案的例子。
QWebEngineUrlScheme::LocalScheme0x2表示URL方案提供对本地资源的访问。此标志的目的是防止网络内容访问本地资源。只有具有LocalAccessAllowed标志的方案才能从具有LocalScheme标志的方案加载资源。唯一具有此标志的内置方案是file
QWebEngineUrlScheme::LocalAccessAllowed0x4表示应允许此方案的内容从具有LocalScheme标志的方案加载资源。
QWebEngineUrlScheme::NoAccessAllowed0x8表示应强制此方案的所有内容都具有唯一的不可见来源:没有任何两个资源具有相同的来源。
QWebEngineUrlScheme::ServiceWorkersAllowed0x10表示应启用Service Workers API。
QWebEngineUrlScheme::ViewSourceAllowed0x20表示应启用查看源功能。
QWebEngineUrlScheme::ContentSecurityPolicyIgnored0x40表示对此方案的所有访问都应绕过所有Content-Security-Policy检查。
QWebEngineUrlScheme::CorsEnabled0x80为此方案启用跨源资源共享(CORS)。此标志是必须的,以便来自不同来源的文档加载内容,包括来自其他方案的内容。适当的CORS标头由QWebEngineUrlRequestJob类自动生成。默认情况下,只有http和https被启用为CORS。 (Qt 5.14新增)
QWebEngineUrlScheme::FetchApiAllowed (自Qt 6.6起)0x100启用URL方案用于HTML5 fetch API以及带有体的XMLHttpRequest.send。默认情况下,只有http和https可以通过Fetch API或带有体的XMLHttpRequest发送。

The Flags类型是QFlags<Flag>的typedef。它存储了Flag值的OR组合。

enum QWebEngineUrlScheme::SpecialPort

此枚举类型为defaultPort定义特殊值。

常量描述
QWebEngineUrlScheme::PortUnspecified-1表示URL方案没有端口元素。

enum class QWebEngineUrlScheme::Syntax

此枚举类型列出了URL语法的类型。

要将同源策略应用于自定义URL方案,WebEngine必须能够计算URL的来源(主机和端口的组合)。Host...选项表明URL方案符合标准URL语法(如http)并自动启用同源策略。Path选项表示URL方案使用非标准语法,且无法应用同源策略。

常量描述
QWebEngineUrlScheme::Syntax::HostPortAndUserInformation0此类型URL的权限组件包含所有标准元素:主机、端口、用户名和密码。没有端口的URL将使用默认端口(必须不是PortUnspecified)。
QWebEngineUrlScheme::Syntax::HostAndPort1此类型URL的权限组件只包含主机和端口元素。没有端口的URL将使用默认端口(必须不是PortUnspecified)。
QWebEngineUrlScheme::Syntax::Host2此类型URL的权限组件只包含主机部分,没有端口。默认端口必须设置为PortUnspecified
QWebEngineUrlScheme::Syntax::Path3此类型的URL根本不存在权限组件。方案名称和分隔符(:)之后所有内容都将保留,无需验证或规范化。此类方案的所有URL都被视为具有相同的来源(除非使用了NoAccessAllowed标志)。

成员函数文档

QWebEngineUrlScheme::QWebEngineUrlScheme()

使用默认值构造一个网络引擎URL方案。

[显式] QWebEngineUrlScheme::QWebEngineUrlScheme(const QByteArray &name)

构造具有指定name的网络引擎URL方案。

QWebEngineUrlScheme::QWebEngineUrlScheme(const QWebEngineUrlScheme &that)

复制that

QWebEngineUrlScheme::QWebEngineUrlScheme(QWebEngineUrlScheme &&that)

移动that

[noexcept] QWebEngineUrlScheme::~QWebEngineUrlScheme()

销毁此对象。

int QWebEngineUrlScheme::defaultPort() const

返回此URL方案的默认端口。

默认值是PortUnspecified

另请参阅setDefaultPort

QWebEngineUrlScheme::Flags QWebEngineUrlScheme::flags() const

返回此URL方案的标志。

默认值是一个空的标志集。

另请参阅FlagssetFlags

QByteArray QWebEngineUrlScheme::name() const

返回此URL方案的名字。

默认值是一个空字符串。

另请参阅 setName()。

[静态] void QWebEngineUrlScheme::registerScheme(const QWebEngineUrlScheme &scheme)

scheme 注册到网络引擎的 URL 解析器和安全模型。

建议在应用程序启动时首先使用此函数注册所有自定义 URL 方案,即使默认选项是使用默认值。

警告: 此函数必须在创建任何 WebEngine 类之前在应用程序启动时尽早调用。迟到的调用将被忽略。

另请参阅 schemeByName()。

[静态] QWebEngineUrlScheme QWebEngineUrlScheme::schemeByName(const QByteArray &name)

返回具有给定 name 的网络引擎 URL 方案或默认构造的方案。

另请参阅 registerScheme()。

void QWebEngineUrlScheme::setDefaultPort(int newValue)

将此 URL 方案的默认端口号设置为 newValue

另请参阅 defaultPort()。

void QWebEngineUrlScheme::setFlags(QWebEngineUrlScheme::Flags newValue)

将此 URL 方案的标志设置为 newValue

另请参阅 Flagsflags()。

void QWebEngineUrlScheme::setName(const QByteArray &newValue)

将此 URL 方案的名字设置为 newValue

注意: 名字将被自动转换成小写。

另请参阅 name()。

QWebEngineUrlScheme::Syntax QWebEngineUrlScheme::setSyntax(QWebEngineUrlScheme::Syntax newValue)

将此 URL 方案的语法类型设置为 newValue

另请参阅 Syntaxsyntax()。

QWebEngineUrlScheme::Syntax QWebEngineUrlScheme::syntax() const

返回此 URL 方案的语法类型。

默认值是 Path

另请参阅 SyntaxsetSyntax()。

bool QWebEngineUrlScheme::operator!=(const QWebEngineUrlScheme &that) const

如果此对象和 that 对象不相等,则返回 true

QWebEngineUrlScheme &QWebEngineUrlScheme::operator=(const QWebEngineUrlScheme &that)

复制that

QWebEngineUrlScheme &QWebEngineUrlScheme::operator=(QWebEngineUrlScheme &&that)

移动that

bool QWebEngineUrlScheme::operator==(const QWebEngineUrlScheme &that) const

如果此对象和that对象相等,则返回true

© 2024 Qt公司有限公司。本文件中的文档贡献的版权属于各自的拥有者。本文件提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版1.3许可的。Qt及其相关标志是芬兰及其它全球国家的商标。所有其他商标均属于其各自的拥有者。