次の方法で共有


HostObjectsOptions class

追加されたスクリプト プロキシ CoreWebView2.AddHostObjectToScript 適用できるオプションが含まれています。

プロパティ

defaultSyncProxy

同期プロキシでメソッドを呼び出す場合、結果も同期プロキシである必要があります。 ただし、場合によっては、同期または非同期コンテキストが失われます (たとえば、ネイティブ コードに関数への参照を提供し、その関数をネイティブ コードで呼び出す場合など)。 このような場合、このオプションが falseされている場合はプロキシが非同期になり、このオプションが trueされている場合は同期になります。

forceAsyncMethodMatches

これは正規表現の配列です。 同期プロキシでメソッドを呼び出すとき、メソッド名がこの配列の文字列または正規表現と一致する場合、メソッド呼び出しは非同期的に実行されます。 この値を /Async$/ に設定すると、 Async で終わる任意のメソッドが非同期メソッド呼び出しになります。 非同期メソッドがここで一致せず、強制的に非同期でない場合、メソッドは同期的に呼び出され、呼び出し元の JavaScript の実行がブロックされ、promise を返すのではなく、promise の解決が返されます。

既定値は [] です。

forceLocalProperties

これは、ネイティブ ホスト オブジェクトで呼び出されるのではなく、ローカルで実行されるホスト オブジェクト プロパティ名の配列です。 既定値は ['then', 'toJSON', Symbol.toString, Symbol.toPrimitive] です。 他のプロパティを追加して、javascript ホスト オブジェクト プロキシでローカルに実行するように指定できます。

ignoreMemberNotFoundError

既定では、対応するネイティブ クラスに存在しないプロキシ プロパティの値を取得しようとすると、例外がスローされます。 このプロパティを true に設定すると、エラーなしで undefined を返す Chakra WinRT プロジェクション (および一般的な JavaScript) の動作に一致するように動作が変更されます。

log

これはコールバック デリゲートであり、null 以外の場合はデバッグ情報で呼び出されます。

たとえば、ホスト オブジェクトの使用状況のトラブルシューティングに役立つデバッグ情報をコンソールに出力するには、これを console.log.bind(console) に設定できます。

既定では、これは nullです。

shouldPassTypedArraysAsArrays

既定では、型指定された配列は、 IDispatchとしてホストに渡されます。 代わりに、型指定された配列を arrayとしてホストに渡すには、これを true に設定します。

shouldSerializeDates

既定ではこれは falseであり、javascript Date オブジェクトは、 JSON.stringifyを使用して文字列としてホスト オブジェクトに送信されます。

このプロパティを true に設定すると、ネイティブ ホスト オブジェクトに送信するときに Date オブジェクトを VT_DATE として適切にシリアル化し、 VT_DATE プロパティと戻り値を使用して JavaScript Date オブジェクトを作成できます。

プロパティの詳細

defaultSyncProxy

同期プロキシでメソッドを呼び出す場合、結果も同期プロキシである必要があります。 ただし、場合によっては、同期または非同期コンテキストが失われます (たとえば、ネイティブ コードに関数への参照を提供し、その関数をネイティブ コードで呼び出す場合など)。 このような場合、このオプションが falseされている場合はプロキシが非同期になり、このオプションが trueされている場合は同期になります。

defaultSyncProxy: boolean;

プロパティ値

boolean

forceAsyncMethodMatches

これは正規表現の配列です。 同期プロキシでメソッドを呼び出すとき、メソッド名がこの配列の文字列または正規表現と一致する場合、メソッド呼び出しは非同期的に実行されます。 この値を /Async$/ に設定すると、 Async で終わる任意のメソッドが非同期メソッド呼び出しになります。 非同期メソッドがここで一致せず、強制的に非同期でない場合、メソッドは同期的に呼び出され、呼び出し元の JavaScript の実行がブロックされ、promise を返すのではなく、promise の解決が返されます。

既定値は [] です。

forceAsyncMethodMatches: RegExp[];

プロパティ値

RegExp[]

forceLocalProperties

これは、ネイティブ ホスト オブジェクトで呼び出されるのではなく、ローカルで実行されるホスト オブジェクト プロパティ名の配列です。 既定値は ['then', 'toJSON', Symbol.toString, Symbol.toPrimitive] です。 他のプロパティを追加して、javascript ホスト オブジェクト プロキシでローカルに実行するように指定できます。

forceLocalProperties: string[];

プロパティ値

string[]

ignoreMemberNotFoundError

既定では、対応するネイティブ クラスに存在しないプロキシ プロパティの値を取得しようとすると、例外がスローされます。 このプロパティを true に設定すると、エラーなしで undefined を返す Chakra WinRT プロジェクション (および一般的な JavaScript) の動作に一致するように動作が変更されます。

ignoreMemberNotFoundError: boolean;

プロパティ値

boolean

log

これはコールバック デリゲートであり、null 以外の場合はデバッグ情報で呼び出されます。

たとえば、ホスト オブジェクトの使用状況のトラブルシューティングに役立つデバッグ情報をコンソールに出力するには、これを console.log.bind(console) に設定できます。

既定では、これは nullです。

log: (...data: any[]) => void;

プロパティ値

(...data: any[]) => void

shouldPassTypedArraysAsArrays

既定では、型指定された配列は、 IDispatchとしてホストに渡されます。 代わりに、型指定された配列を arrayとしてホストに渡すには、これを true に設定します。

shouldPassTypedArraysAsArrays: boolean;

プロパティ値

boolean

shouldSerializeDates

既定ではこれは falseであり、javascript Date オブジェクトは、 JSON.stringifyを使用して文字列としてホスト オブジェクトに送信されます。

このプロパティを true に設定すると、ネイティブ ホスト オブジェクトに送信するときに Date オブジェクトを VT_DATE として適切にシリアル化し、 VT_DATE プロパティと戻り値を使用して JavaScript Date オブジェクトを作成できます。

shouldSerializeDates: boolean;

プロパティ値

boolean