HostObjectsOptions class

包含适用于 CoreWebView2.AddHostObjectToScript 添加的脚本代理的选项。

属性

defaultSyncProxy

在同步代理上调用方法时,结果也应是同步代理。 但在某些情况下,同步或异步上下文会丢失 (例如,向本机代码提供对函数的引用,然后在本机代码中调用该函数) 。 在这些情况下,如果此选项为 false,则代理将异步;如果此选项为 ,则代理将 true同步。

forceAsyncMethodMatches

这是正则表达式的数组。 在同步代理上调用方法时,如果方法名称与此数组中的字符串或正则表达式匹配,则将异步执行方法调用。 将此值设置为 /Async$/ 将使以 Async 结尾的任何方法成为异步方法调用。 如果异步方法在此处不匹配并且不强制异步,则将同步调用该方法,从而阻止调用 JavaScript 的执行,然后返回承诺的解析,而不是返回承诺。

这默认为 []

forceLocalProperties

这是将在本地运行的主机对象属性名称数组,而不是在本机主机对象上调用。 这默认为 ['then', 'toJSON', Symbol.toString, Symbol.toPrimitive]。 可以添加其他属性,以指定它们应在 javascript 主机对象代理上本地运行。

ignoreMemberNotFoundError

默认情况下,尝试获取相应本机类上不存在的代理属性的值时,将引发异常。 将此属性设置为 将 true 更改行为以匹配 Chakra WinRT 投影 (和常规 JavaScript) 返回 undefined 无错误的行为。

log

这是一个回调委托,如果非 null,将使用调试信息调用。

例如,可以将其 console.log.bind(console) 设置为 ,使其将调试信息打印到控制台,以便在对主机对象使用情况进行故障排除时提供帮助。

默认情况下,这是 null

shouldPassTypedArraysAsArrays

默认情况下,类型化数组作为 IDispatch传递给主机。 若要改为将类型化数组作为 array传递给主机,请将此项设置为 true

shouldSerializeDates

默认情况下,这是 false,javascript Date 对象将使用 作为字符串 JSON.stringify发送到宿主对象。

可以将此属性设置为 true ,以在 Date 发送到本机主机对象时将对象正确序列化为 VT_DATE ,并让 VT_DATE 属性和返回值创建 JavaScript Date 对象。

属性详细信息

defaultSyncProxy

在同步代理上调用方法时,结果也应是同步代理。 但在某些情况下,同步或异步上下文会丢失 (例如,向本机代码提供对函数的引用,然后在本机代码中调用该函数) 。 在这些情况下,如果此选项为 false,则代理将异步;如果此选项为 ,则代理将 true同步。

defaultSyncProxy: boolean;

属性值

boolean

forceAsyncMethodMatches

这是正则表达式的数组。 在同步代理上调用方法时,如果方法名称与此数组中的字符串或正则表达式匹配,则将异步执行方法调用。 将此值设置为 /Async$/ 将使以 Async 结尾的任何方法成为异步方法调用。 如果异步方法在此处不匹配并且不强制异步,则将同步调用该方法,从而阻止调用 JavaScript 的执行,然后返回承诺的解析,而不是返回承诺。

这默认为 []

forceAsyncMethodMatches: RegExp[];

属性值

RegExp[]

forceLocalProperties

这是将在本地运行的主机对象属性名称数组,而不是在本机主机对象上调用。 这默认为 ['then', 'toJSON', Symbol.toString, Symbol.toPrimitive]。 可以添加其他属性,以指定它们应在 javascript 主机对象代理上本地运行。

forceLocalProperties: string[];

属性值

string[]

ignoreMemberNotFoundError

默认情况下,尝试获取相应本机类上不存在的代理属性的值时,将引发异常。 将此属性设置为 将 true 更改行为以匹配 Chakra WinRT 投影 (和常规 JavaScript) 返回 undefined 无错误的行为。

ignoreMemberNotFoundError: boolean;

属性值

boolean

log

这是一个回调委托,如果非 null,将使用调试信息调用。

例如,可以将其 console.log.bind(console) 设置为 ,使其将调试信息打印到控制台,以便在对主机对象使用情况进行故障排除时提供帮助。

默认情况下,这是 null

log: (...data: any[]) => void;

属性值

(...data: any[]) => void

shouldPassTypedArraysAsArrays

默认情况下,类型化数组作为 IDispatch传递给主机。 若要改为将类型化数组作为 array传递给主机,请将此项设置为 true

shouldPassTypedArraysAsArrays: boolean;

属性值

boolean

shouldSerializeDates

默认情况下,这是 false,javascript Date 对象将使用 作为字符串 JSON.stringify发送到宿主对象。

可以将此属性设置为 true ,以在 Date 发送到本机主机对象时将对象正确序列化为 VT_DATE ,并让 VT_DATE 属性和返回值创建 JavaScript Date 对象。

shouldSerializeDates: boolean;

属性值

boolean