共用方式為


HostObjectAsyncProxyBase class

異步主機物件 Proxy。 透過 CoreWebView2.AddHostObjectToScript 新增的主機物件會使用 window.chrome.webview.hostObjects.{name}公開為主物件 Proxy。 主機物件 Proxy 是 promise,並解析為代表主對象的物件。 如果應用程式尚未新增具有名稱的物件,則承諾會遭到拒絕。 當 JavaScript 程式代碼存取 物件的屬性或方法時,會傳回承諾。 承諾會解析為屬性或方法從主機傳回的值。 發生錯誤時,承諾會遭到拒絕;例如,對象上沒有屬性或方法,或參數無效。

主機物件 Proxy 是 JavaScript Proxy 物件,可攔截所有屬性、屬性getset和方法調用。 屬於或 原型一部分的 Function 屬性或 Object 方法會在目前檔的 JavaScript 引擎中執行。 此外, chrome.webview.hostObjects.options.forceLocalProperties 陣列中的任何屬性或方法也會在目前檔的 JavaScript 引擎中執行。 這預設為包含在 JavaScript 中具有意義的選擇性方法,例如 toJSONSymbol.toPrimitive。 視需要將更多新增至陣列。

Extends

方法

applyHostFunction(argArray)

在對應至此 Proxy 的主機物件上執行方法調用。

所有參數都會轉換成呼叫主機物件方法。

getHostProperty(propertyName)

在主物件上執行 屬性 get 。 如果有衝突的本機方法或屬性存在,請使用這個方法明確地強制從遠端執行屬性 get。 例如, 會 proxy.toString() 在 Proxy 物件上執行本 toString 機方法。 但是 proxy.applyHostFunction ('toString') 改為在主機 Proxy 對象上執行至String。

getLocalProperty(propertyName)

在 Proxy 物件本機上執行屬性 get 。 使用 方法來強制取得主機物件 Proxy 上的屬性,而不是在它所代表的主機物件上取得屬性。 例如, proxy.unknownProperty 會從主機 Proxy 物件取得名為 unknownProperty 的屬性。 但是 proxy.getLocalProperty('unknownProperty') 會取得 Proxy 物件上的 屬性 unknownProperty 值。

setHostProperty(propertyName, propertyValue)

在主物件上執行 屬性 set 。 如果有衝突的本機方法或屬性存在,請使用這個方法明確地強制從遠端發生屬性 set

setLocalProperty(propertyName, propertyValue)

在 Proxy 物件本機上執行屬性 set 。 使用 方法來強制在主機物件 Proxy 上設定屬性,而不是在它所代表的主機對象上設定屬性。 例如, proxy.unknownProperty = 2 在主機 Proxy 物件上設定名為 unknownProperty 的屬性。 但是 proxy.setLocalProperty('unknownProperty', 2) 會在 Proxy 物件上設定 屬性 unknownProperty 的值。

方法詳細資料

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

設定屬性之後的值。