HostObjectAsyncProxyBase class
异步主机对象代理。 通过 CoreWebView2.AddHostObjectToScript
添加的主机对象使用 window.chrome.webview.hostObjects.{name}
作为主机对象代理公开。 主机对象代理是承诺,解析为表示主机对象的 对象。 如果应用未添加名称为 的对象,则拒绝承诺。 当 JavaScript 代码访问 对象的属性或方法时,将返回 promise。 promise 解析为从属性或方法的主机返回的值。 如果出现错误,则拒绝承诺;例如,对象上没有任何属性或方法,或者参数无效。
主机对象代理是 JavaScript 代理对象,可截获所有属性 get
、属性 set
和方法调用。 属于 或 原型的属性 Function
或 Object
方法在当前文档的 JavaScript 引擎中运行。 此外,数组中的任何 chrome.webview.hostObjects.options.forceLocalProperties
属性或方法也会在当前文档的 JavaScript 引擎中运行。 这默认包括在 JavaScript 中具有含义的可选方法,例如 toJSON
和 Symbol.toPrimitive
。 根据需要向数组添加更多内容。
- 扩展
方法
apply |
对与此代理对应的主机对象执行方法调用。 将所有参数转换为调用 host 对象方法。 |
get |
对主机对象执行属性 |
get |
在代理对象上本地执行属性 |
set |
对主机对象执行属性 |
set |
在代理对象上本地执行属性 |
方法详细信息
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
设置属性后的值。