HostObjectSyncProxy class

同步主机对象代理。 通过 CoreWebView2.AddHostObjectToScript 添加的主机对象使用 window.chrome.webview.hostObjects.{name}作为主机对象代理公开。 主机对象代理表示主机对象。

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

扩展

方法

applyHostFunction(argArray)

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

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

async()

一种方法,该方法阻止并返回同一主机对象的异步主机对象代理。 例如, chrome.webview.hostObjects.sync.sample.methodCall() 返回同步主机对象代理。 async在此块上运行 方法,然后返回同一主机对象的异步主机对象代理:const asyncProxy = chrome.webview.hostObjects.sync.sample.methodCall().async()

getHostProperty(propertyName)

对主机对象执行属性 get 。 如果存在冲突的本地方法或属性 get ,请使用此方法显式强制属性远程发生。 例如, proxy.toString() 在代理对象上运行本地 toString 方法。 toStringproxy.applyHostFunction('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): any;

参数

argArray

any

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

返回

any

主机对象方法调用的返回值的转换值。

async()

一种方法,该方法阻止并返回同一主机对象的异步主机对象代理。 例如, chrome.webview.hostObjects.sync.sample.methodCall() 返回同步主机对象代理。 async在此块上运行 方法,然后返回同一主机对象的异步主机对象代理:const asyncProxy = chrome.webview.hostObjects.sync.sample.methodCall().async()

async(): HostObjectAsyncProxy;

返回

同一主机对象的异步主机对象代理。

getHostProperty(propertyName)

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

getHostProperty(propertyName: string): any;

参数

propertyName

string

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

返回

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): any;

参数

propertyName

string

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

propertyValue

any

要设置属性的值。

返回

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

设置属性后的值。