HostObjectAsyncProxyBase class
異步主機物件 Proxy。 透過 CoreWebView2.AddHostObjectToScript
新增的主機物件會使用 window.chrome.webview.hostObjects.{name}
公開為主物件 Proxy。 主機物件 Proxy 是 promise,並解析為代表主對象的物件。 如果應用程式尚未新增具有名稱的物件,則承諾會遭到拒絕。 當 JavaScript 程式代碼存取 物件的屬性或方法時,會傳回承諾。 承諾會解析為屬性或方法從主機傳回的值。 發生錯誤時,承諾會遭到拒絕;例如,對象上沒有屬性或方法,或參數無效。
主機物件 Proxy 是 JavaScript Proxy 物件,可攔截所有屬性、屬性get
set
和方法調用。 屬於或 原型一部分的 Function
屬性或 Object
方法會在目前檔的 JavaScript 引擎中執行。 此外, chrome.webview.hostObjects.options.forceLocalProperties
陣列中的任何屬性或方法也會在目前檔的 JavaScript 引擎中執行。 這預設為包含在 JavaScript 中具有意義的選擇性方法,例如 toJSON
和 Symbol.toPrimitive
。 視需要將更多新增至陣列。
- Extends
方法
apply |
在對應至此 Proxy 的主機物件上執行方法調用。 所有參數都會轉換成呼叫主機物件方法。 |
get |
在主物件上執行 屬性 |
get |
在 Proxy 物件本機上執行屬性 |
set |
在主物件上執行 屬性 |
set |
在 Proxy 物件本機上執行屬性 |
方法詳細資料
applyHostFunction(argArray)
在對應至此 Proxy 的主機物件上執行方法調用。
所有參數都會轉換成呼叫主機物件方法。
applyHostFunction(argArray?: any): Promise<any>;
參數
- argArray
-
any
要傳遞至主機物件方法調用的自變數陣列。
傳回
Promise<any>
承諾,表示主機物件方法調用之傳回值的轉換值。
getHostProperty(propertyName)
在主物件上執行 屬性 get
。 如果有衝突的本機方法或屬性存在,請使用這個方法明確地強制從遠端執行屬性 get。 例如, 會 proxy.toString()
在 Proxy 物件上執行本 toString
機方法。 但是 proxy.applyHostFunction ('toString') 改為在主機 Proxy 對象上執行至String。
getHostProperty(propertyName: string): Promise<any>;
參數
- propertyName
-
string
要取得其值之屬性的字串名稱。
傳回
Promise<any>
承諾,表示主物件之 屬性的已轉換值。
getLocalProperty(propertyName)
在 Proxy 物件本機上執行屬性 get
。 使用 方法來強制取得主機物件 Proxy 上的屬性,而不是在它所代表的主機物件上取得屬性。 例如, proxy.unknownProperty
會從主機 Proxy 物件取得名為 unknownProperty
的屬性。 但是 proxy.getLocalProperty('unknownProperty')
會取得 Proxy 物件上的 屬性 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)
在 Proxy 物件本機上執行屬性 set
。 使用 方法來強制在主機物件 Proxy 上設定屬性,而不是在它所代表的主機對象上設定屬性。 例如, proxy.unknownProperty = 2
在主機 Proxy 物件上設定名為 unknownProperty
的屬性。 但是 proxy.setLocalProperty('unknownProperty', 2)
會在 Proxy 物件上設定 屬性 unknownProperty
的值。
setLocalProperty(propertyName: string, propertyValue: any): any;
參數
- propertyName
-
string
要設定其值之屬性的名稱。
- propertyValue
-
any
要設定屬性的值。
傳回
any
設定屬性之後的值。