class QWebEngineUrlScheme#

QWebEngineUrlScheme 类配置自定义 URL 方案。 更多信息

摘要#

方法#

静态函数#

注意

本文档可能包含从 C++ 自动转换到 Python 的代码片段。我们始终欢迎对代码片段的翻译做出贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们

详细说明#

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 到配置文件中。

class Syntax#

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

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

常量

描述

QWebEngineUrlScheme_Syntax HostPortAndUserInformation

此类URL的授权组件包含所有标准元素:主机、端口、用户名和密码。没有端口的URL将使用defaultPort必须 不是PortUnspecified)。

QWebEngineUrlScheme_Syntax HostAndPort

此类URL的授权组件只包含主机和端口元素。没有端口的URL将使用defaultPort必须 不是PortUnspecified)。

QWebEngineUrlScheme_Syntax Host

此类URL的授权组件只包含主机部分,没有端口。必须将defaultPort 设置为PortUnspecified

QWebEngineUrlScheme_Syntax Path

此类URL完全没有授权组件。方案名称和分隔符(:)之后的所有内容都将原样保留,不进行验证或规范。这样的所有URL都将被认为是具有相同的原始地址(除非使用了NoAccessAllowed 标志)。

class SpecialPort#

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

常量

描述

QWebEngineUrlScheme.PortUnspecified

表示URL方案没有端口号元素。

class Flag#

(继承自 enum.Flag)此类枚举类型指定了应用于URL方案的安全性选项。

常量

描述

QWebEngineUrlScheme.SecureScheme

表示URL方案可能可信。[参考资料]。此标志仅应用于确保数据真实性、保密性和完整性的URL方案,无论是通过加密还是其他方法。例如,安全的内置方案包括https(认证和加密)和qrc(仅本地资源),而http是一个不安全方案的例子。

QWebEngineUrlScheme.LocalScheme

表示URL方案提供对本地资源的访问。此标志的目的是防止网络内容访问本地资源。只有具有LocalAccessAllowed标志的方案才允许从具有LocalScheme标志的方案加载资源。只有一个具有此标志的内置方案是file

QWebEngineUrlScheme.LocalAccessAllowed

表示应允许此方案的内容从具有LocalScheme标志的方案加载资源。

QWebEngineUrlScheme.NoAccessAllowed

表示此方案的所有内容都将强制具有唯一的不可见源:没有两个资源将具有相同的源。

QWebEngineUrlScheme.ServiceWorkersAllowed

表示应启用Service Workers API。

QWebEngineUrlScheme.ViewSourceAllowed

表示应启用“查看源”功能。

QWebEngineUrlScheme.ContentSecurityPolicyIgnored

表示访问此方案应绕过所有内容安全策略检查。

QWebEngineUrlScheme.CorsEnabled

为此方案启用跨源资源共享(CORS)。此标志对于内容通过不同源(包括其他方案的访问)加载是必需的。适当的CORS头由QWebEngineUrlRequestJob类自动生成。默认情况下,只有httphttps启用CORS。 (自Qt 5.14添加)

QWebEngineUrlScheme.FetchApiAllowed

启用HTML5 fetch API以及使用正文发送的XMLHttpRequest.send来使用URL方案。默认情况下,只有httphttps可以由Fetch API或带有正文的XMLHttpRequest使用。

__init__()#

使用默认值构建Web引擎URL方案。

__init__(name)
参数:

nameQByteArray

使用给定的name构建Web引擎URL方案。

__init__(that)
参数:

thatQWebEngineUrlScheme

副本。

defaultPort()链接
返回类型:

int

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

默认值是 PortUnspecified

flags()链接
返回类型:

Flag的组合

返回此URL方案的标志。

默认值是无标志集合。

另见

Flags setFlags

name()链接
返回类型:

QByteArray

返回此URL方案的名字。

默认值是空字符串。

另见

setName()

__ne__(that)链接
参数:

thatQWebEngineUrlScheme

返回类型:

bool

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

__eq__(that)链接
参数:

thatQWebEngineUrlScheme

返回类型:

bool

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

静态的 registerScheme(scheme)链接
参数:

方案QWebEngineUrlScheme

在Web引擎的URL解析器和安全模型中注册scheme

建议在应用启动时注册所有自定义URL方案,即使默认选项已使用此功能。

警告

此函数必须在创建所有WebEngine类之前,尽早在应用启动时调用。延迟调用将被忽略。

静态的 schemeByName(name)链接
参数:

nameQByteArray

返回类型:

QWebEngineUrlScheme

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

setDefaultPort(newValue)#
参数:

newValue – int

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

另见

defaultPort()

setFlags(newValue)#
参数:

newValueFlag组合

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

另见

Flags flags()

setName(newValue)#
参数:

newValueQByteArray

将此URL方案的名称为newValue

注意

名称将自动转换为小写。

另见

name()

setSyntax(newValue)#
参数:

newValueSyntax

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

另见

Syntax syntax()

syntax()#
返回类型:

语法

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

默认值是Path