QWebEngineUrlScheme 类
QWebEngineUrlScheme 类用于配置自定义 URL 方案。 更多...
头文件 | #include <QWebEngineUrlScheme> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += 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() | |
int | defaultPort() const |
QWebEngineUrlScheme::Flags | flags() const |
QByteArray | name() const |
void | setDefaultPort(int newValue) |
void | setFlags(QWebEngineUrlScheme::Flags newValue) |
void | setName(const QByteArray &newValue) |
void | setSyntax(QWebEngineUrlScheme::Syntax newValue) |
QWebEngineUrlScheme::Syntax | syntax() const |
bool | operator!=(const QWebEngineUrlScheme &that) const |
QWebEngineUrlScheme & | operator=(const QWebEngineUrlScheme &that) |
QWebEngineUrlScheme & | operator=(QWebEngineUrlScheme &&that) |
bool | operator==(const QWebEngineUrlScheme &that) const |
静态公共成员
void | registerScheme(const QWebEngineUrlScheme &scheme) |
QWebEngineUrlScheme | schemeByName(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::SecureScheme | 0x1 | 表示URL方案可能是值得信赖的。此标志应仅应用于确保数据真实性、机密性和完整性的URL方案,无论是通过加密或其他方式。例如,安全的内置方案包括https (认证和数据加密)和qrc (仅本地资源),而http 是一个不安全方案的例子。 |
QWebEngineUrlScheme::LocalScheme | 0x2 | 表示URL方案提供对本地资源的访问。此标志的目的是防止网络内容访问本地资源。只有具有LocalAccessAllowed 标志的方案才能从具有LocalScheme 标志的方案加载资源。唯一具有此标志的内置方案是file 。 |
QWebEngineUrlScheme::LocalAccessAllowed | 0x4 | 表示应允许此方案的内容从具有LocalScheme 标志的方案加载资源。 |
QWebEngineUrlScheme::NoAccessAllowed | 0x8 | 表示应强制此方案的所有内容都具有唯一的不可见来源:没有任何两个资源具有相同的来源。 |
QWebEngineUrlScheme::ServiceWorkersAllowed | 0x10 | 表示应启用Service Workers API。 |
QWebEngineUrlScheme::ViewSourceAllowed | 0x20 | 表示应启用查看源功能。 |
QWebEngineUrlScheme::ContentSecurityPolicyIgnored | 0x40 | 表示对此方案的所有访问都应绕过所有Content-Security-Policy检查。 |
QWebEngineUrlScheme::CorsEnabled | 0x80 | 为此方案启用跨源资源共享(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::HostPortAndUserInformation | 0 | 此类型URL的权限组件包含所有标准元素:主机、端口、用户名和密码。没有端口的URL将使用默认端口(必须不是PortUnspecified)。 |
QWebEngineUrlScheme::Syntax::HostAndPort | 1 | 此类型URL的权限组件只包含主机和端口元素。没有端口的URL将使用默认端口(必须不是PortUnspecified)。 |
QWebEngineUrlScheme::Syntax::Host | 2 | 此类型URL的权限组件只包含主机部分,没有端口。默认端口必须设置为PortUnspecified。 |
QWebEngineUrlScheme::Syntax::Path | 3 | 此类型的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方案的标志。
默认值是一个空的标志集。
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。
void QWebEngineUrlScheme::setName(const QByteArray &newValue)
将此 URL 方案的名字设置为 newValue。
注意: 名字将被自动转换成小写。
另请参阅 name()。
QWebEngineUrlScheme::Syntax QWebEngineUrlScheme::setSyntax(QWebEngineUrlScheme::Syntax newValue)
将此 URL 方案的语法类型设置为 newValue。
QWebEngineUrlScheme::Syntax QWebEngineUrlScheme::syntax() const
返回此 URL 方案的语法类型。
默认值是 Path
。
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及其相关标志是芬兰及其它全球国家的商标。所有其他商标均属于其各自的拥有者。