PySide6.QtWebEngineCore.QWebEngineUrlScheme

class QWebEngineUrlScheme

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

概要

方法

静态函数

注意

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

详细描述

一个网页引擎URL方案从网页引擎的角度描述了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)。此标志是为了允许不同来源的文档加载内容,包括从其他方案的访问。QWebEngineUrlRequestJob 类会自动生成适当的CORS头信息。默认情况下,只有 httphttps 启用了CORS。(在Qt 5.14中添加)

QWebEngineUrlScheme.FetchApiAllowed

允许URL方案被HTML5 fetch API和XMLHttpRequest.send与主体一起使用。默认情况下,只有httphttps可以通过Fetch API或带有主体的XMLHttpRequest发送。

__init__()

使用默认值构建一个网页引擎URL方案。

__init__(name)
Parameters:

名称QByteArray

使用给定的name构建一个web引擎URL方案。

__init__(that)
Parameters:

thatQWebEngineUrlScheme

复制 that

defaultPort()
Return type:

整数

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

默认值为PortUnspecified

另请参阅

setDefaultPort()

flags()
Return type:

Flag的组合

返回此URL方案的标志。

默认值是一组空的标志。

另请参阅

标志 setFlags()

name()
Return type:

QByteArray

返回此URL方案的名称。

默认值为空字符串。

另请参阅

setName()

__ne__(that)
Parameters:

thatQWebEngineUrlScheme

Return type:

布尔

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

__eq__(that)
Parameters:

thatQWebEngineUrlScheme

Return type:

布尔

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

static registerScheme(scheme)
Parameters:

方案QWebEngineUrlScheme

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

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

警告

此函数必须在应用程序启动时尽早调用,在创建任何WebEngine类之前。晚期的调用将被忽略。

另请参阅

schemeByName()

static schemeByName(name)
Parameters:

名称QByteArray

Return type:

QWebEngineUrlScheme

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

另请参阅

registerScheme()

setDefaultPort(newValue)
Parameters:

newValue – int

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

另请参阅

defaultPort()

setFlags(newValue)
Parameters:

newValueFlag 的组合

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

另请参阅

标志 flags()

setName(newValue)
Parameters:

newValueQByteArray

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

注意

名称会自动转换为小写。

另请参阅

name()

setSyntax(newValue)
Parameters:

newValue语法

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

另请参阅

语法 syntax()

syntax()
Return type:

语法

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

默认值为Path

另请参阅

语法 setSyntax()