HostObjectAsyncProxyBase class

异步主机对象代理。 通过 CoreWebView2.AddHostObjectToScript 添加的主机对象使用 window.chrome.webview.hostObjects.{name}作为主机对象代理公开。 主机对象代理是承诺,解析为表示主机对象的 对象。 如果应用未添加名称为 的对象,则拒绝承诺。 当 JavaScript 代码访问 对象的属性或方法时,将返回 promise。 promise 解析为从属性或方法的主机返回的值。 如果出现错误,则拒绝承诺;例如,对象上没有任何属性或方法,或者参数无效。

主机对象代理是 JavaScript 代理对象,可截获所有属性 get、属性 set和方法调用。 属于 或 原型的属性 FunctionObject 方法在当前文档的 JavaScript 引擎中运行。 此外,数组中的任何 chrome.webview.hostObjects.options.forceLocalProperties 属性或方法也会在当前文档的 JavaScript 引擎中运行。 这默认包括在 JavaScript 中具有含义的可选方法,例如 toJSONSymbol.toPrimitive。 根据需要向数组添加更多内容。

扩展

方法

applyHostFunction(argArray)

对与此代理对应的主机对象执行方法调用。

将所有参数转换为调用 host 对象方法。

getHostProperty(propertyName)

对主机对象执行属性 get 。 如果存在冲突的本地方法或属性,请使用此方法显式强制属性 get 远程发生。 例如, proxy.toString() 在代理对象上运行本地 toString 方法。 但 proxy.applyHostFunction ('toString') 改为在主机代理对象上运行 toString。

getLocalProperty(propertyName)

在代理对象上本地执行属性 get 。 使用 方法强制获取主机对象代理上的属性,而不是它表示的主机对象上的属性。 例如, proxy.unknownProperty 从主机代理对象获取名为 unknownProperty 的属性。 但 proxy.getLocalProperty('unknownProperty') 获取代理对象上 属性 unknownProperty 的值。

setHostProperty(propertyName, propertyValue)

对主机对象执行属性 set 。 如果存在冲突的本地方法或属性 set ,请使用此方法显式强制属性远程发生。

setLocalProperty(propertyName, propertyValue)

在代理对象上本地执行属性 set 。 使用 方法强制在主机对象代理(而不是它所表示的主机对象)上设置属性。 例如, proxy.unknownProperty = 2 在主机代理对象上设置名为 unknownProperty 的属性。 但 proxy.setLocalProperty('unknownProperty', 2) 设置代理对象上的 属性 unknownProperty 的值。

方法详细信息

applyHostFunction(argArray)

对与此代理对应的主机对象执行方法调用。

将所有参数转换为调用 host 对象方法。

applyHostFunction(argArray?: any): Promise<any>;

参数

argArray

any

要传递给宿主对象方法调用的参数数组。

返回

Promise<any>

一个承诺,表示主机对象方法调用的返回值的转换值。

getHostProperty(propertyName)

对主机对象执行属性 get 。 如果存在冲突的本地方法或属性,请使用此方法显式强制属性 get 远程发生。 例如, proxy.toString() 在代理对象上运行本地 toString 方法。 但 proxy.applyHostFunction ('toString') 改为在主机代理对象上运行 toString。

getHostProperty(propertyName: string): Promise<any>;

参数

propertyName

string

要获取其值的 属性的字符串名称。

返回

Promise<any>

一个承诺,表示主机对象的 属性的 属性的转换值。

getLocalProperty(propertyName)

在代理对象上本地执行属性 get 。 使用 方法强制获取主机对象代理上的属性,而不是它表示的主机对象上的属性。 例如, proxy.unknownProperty 从主机代理对象获取名为 unknownProperty 的属性。 但 proxy.getLocalProperty('unknownProperty') 获取代理对象上 属性 unknownProperty 的值。

getLocalProperty(propertyName: string): any;

参数

propertyName

string

要获取其值的属性的名称。

返回

any

属性的值。

setHostProperty(propertyName, propertyValue)

对主机对象执行属性 set 。 如果存在冲突的本地方法或属性 set ,请使用此方法显式强制属性远程发生。

setHostProperty(propertyName: string, propertyValue: any): Promise<any>;

参数

propertyName

string

要设置其值的属性的名称。

propertyValue

any

要设置属性的值。

返回

Promise<any>

一个承诺,表示主机对象的 属性的 属性的转换值。 只有在属性值发生更改后,此承诺才会解决。

setLocalProperty(propertyName, propertyValue)

在代理对象上本地执行属性 set 。 使用 方法强制在主机对象代理(而不是它所表示的主机对象)上设置属性。 例如, proxy.unknownProperty = 2 在主机代理对象上设置名为 unknownProperty 的属性。 但 proxy.setLocalProperty('unknownProperty', 2) 设置代理对象上的 属性 unknownProperty 的值。

setLocalProperty(propertyName: string, propertyValue: any): any;

参数

propertyName

string

要设置其值的属性的名称。

propertyValue

any

要设置属性的值。

返回

any

设置属性后的值。