メインコンテンツまでスキップ

WebView (웹뷰) Widget Control

WebViewウィジェットをスクリプトから制御するときに使用するWidget Control(Property · Method · Event)の一覧です。ウィジェットの紹介と使い方はWebViewドキュメントを参照してください。

備考

以下の例のwebviewIDは、キャンバスでWebViewウィジェットに指定した名前(ID)です。スクリプトではwidgetID.memberの形式でアクセスします。

Widget Control一覧

Widget Control種類シグネチャ説明
valuePropertywebviewID.valueWebViewが読み込むコンテンツ(URL・アセットパス・HTMLデータ)。読み取り/書き込み、文字列
userAgentPropertywebviewID.userAgentデフォルトのUser-Agentの後ろに追加するカスタムUser-Agent。読み取り/書き込み、文字列
embedInParentScrollPropertywebviewID.embedInParentScrollトラックパッド/ホイールのスクロールを親のスクロールビューに渡すかどうか(macOS専用)。読み取り/書き込み、ブール値
setValueMethodwebviewID.setValue(s)読み込むコンテンツを設定。valueへの代入と同じ
runJavaScriptMethodwebviewID.runJavaScript(funcName, args, callback)読み込まれたページでJavaScriptを実行
asyncRunJavaScriptMethodwebviewID.asyncRunJavaScript(funcName, args, callback)JavaScriptを非同期で実行し、結果を待機
sendDataToWebMethodwebviewID.sendDataToWeb(funcName, args, callback)ページのJavaScript関数を名前で呼び出し、データを渡す
onReceiveDataMethodwebviewID.onReceiveData(callback)ページがホストに送信したデータを受け取るコールバックを登録
addJavaScriptHandlerMethodwebviewID.addJavaScriptHandler(handlerName, callback)ページが名前で呼び出せるJavaScriptハンドラーを登録
isCreatedNewWindowMethodwebviewID.isCreatedNewWindow(result)リンクを新しいウィンドウで開くことを許可するかを設定
injectGlowMethodwebviewID.injectGlow(json)読み込まれたページの上にアニメーショングロー効果を重ねる
removeGlowMethodwebviewID.removeGlow()injectGlowで追加したグロー効果を削除
onFinishedEventwebviewID.onFinished = (value) => { ... }現在のページの読み込みが完了したときに実行
onShouldOverrideUrlEventwebviewID.onShouldOverrideUrl = (value) => { ... }ページがhybrid://ブリッジでホストにメッセージを送信したときに実行

Property

value

WebViewが読み込むコンテンツです。ウィジェットのタイプ(URL・アセットパス・インラインHTML)に応じて解釈され、値を代入すると新しいコンテンツで再読み込みします。

  • 種類: Property(読み取り/書き込み)
  • : 文字列
  • Returns(get): 現在読み込まれているコンテンツ文字列

Example

webviewID.value = "https://example.com";
let current = webviewID.value;

userAgent

デフォルトのUser-Agent文字列の後ろに追加するカスタムUser-Agentです。

  • 種類: Property(読み取り/書き込み)
  • : 文字列
  • Returns(get): 追加されたカスタムUser-Agent文字列

Example

webviewID.userAgent = "MyApp/1.0";

embedInParentScroll

WebView上で発生したトラックパッド/マウスホイールのスクロールを親のスクロールビューに渡すかどうかです(macOS専用)。WebViewが生成された後にtrueを設定すると即座に反映され、他のプラットフォームでは無視されます。

  • 種類: Property(読み取り/書き込み)
  • : ブール値
  • Returns(get): 親へのスクロール伝達の有無(ブール値)。デフォルト値はfalse

Example

webviewID.embedInParentScroll = true;

Method

setValue

WebViewが読み込むコンテンツを設定します。valueプロパティへの代入と同じで、文字列はウィジェットのタイプ(URL・アセットパス・HTMLデータ)に応じて解釈されます。

  • Parameters
    • s(文字列): 読み込むコンテンツ(URL・アセットパス・HTMLデータ)
  • Returns: なし

Example

webviewID.setValue("https://example.com");

runJavaScript

読み込まれたページでJavaScriptを実行します。funcName(args)の形式で呼び出され(argsはJSONにエンコードされます)、argsが空または省略された場合はfuncNameをそのまま評価します(生の式を渡せます)。ページの読み込みが完了していない場合、呼び出しはキューに積まれ、ページの準備完了後に実行されます。

  • Parameters
    • funcName(文字列): 実行するJavaScript関数の名前または式
    • args: 関数に渡す引数(JSONエンコード)
    • callback(任意): 結果{success, data, error}を受け取るコールバック
  • Returns: なし(結果はcallbackに渡されます)

Example

webviewID.runJavaScript("window.someFunction", { value: 100 }, function() {});

asyncRunJavaScript

JavaScriptを非同期で実行し、結果を待機します。argsが指定された場合はfuncNameを戻り値を待つ関数本体として扱い、そうでない場合はfuncNameを式として評価します。ページの読み込みが完了していない場合、呼び出しはキューに積まれ、ページの準備完了後に実行されます。

  • Parameters
    • funcName(文字列): JavaScript関数の本体または式
    • args: 関数本体で使用する引数
    • callback(任意): 結果{success, data, error}を受け取るコールバック
  • Returns: なし(結果はcallbackに渡されます)

Example

webviewID.asyncRunJavaScript("myFunc(param);", { "param": data });

sendDataToWeb

読み込まれたページのJavaScript関数を呼び出し、argsを引数として渡します。funcName(args)の形式で呼び出され(argsはJSONエンコード)、空のマップまたは省略したマップを渡した場合はfuncNameをそのまま評価します。ページの読み込みが完了していない場合、呼び出しはキューに積まれ、ページの準備完了後に実行されます。

  • Parameters
    • funcName(文字列): 呼び出すJavaScript関数の名前
    • args: 関数に渡す引数(JSONエンコード)
    • callback(任意): 結果{success, data, error}を受け取るコールバック
  • Returns: なし(非同期で完了し、結果はcallbackに渡されます)

Example

webviewID.sendDataToWeb("window.someFunction", data, function() {});

onReceiveData

読み込まれたページがホストに送信したデータを受け取るコールバックを登録します。コールバックはメッセージのペイロードを引数として呼び出されます。

  • Parameters
    • callback: ページが送信したデータを引数として受け取る関数
  • Returns: なし

Example

webviewID.onReceiveData((data) => {
// data = ページが送信したペイロード
});

addJavaScriptHandler

読み込まれたページが名前で呼び出せる(ページのホストブリッジ経由)JavaScriptハンドラーを登録します。ページの読み込みが完了していない場合、登録はキューに積まれ、ページの準備完了後に適用されます。

  • Parameters
    • handlerName(文字列): ページがこのハンドラーを呼び出すときに使用する名前
    • callback: ページが渡した引数を受け取って呼び出される関数
  • Returns: なし

Example

webviewID.addJavaScriptHandler("onQuote", (args) => {
// args = ページが送信したデータ
});

isCreatedNewWindow

WebViewがリンクを新しいウィンドウで開くことを許可するかを制御します。

  • Parameters
    • result(ブール値): 新しいウィンドウの生成を許可する場合はtrue、ブロックする場合はfalse
  • Returns: なし

Example

webviewID.isCreatedNewWindow(true);

injectGlow

読み込まれたページの上にアニメーショングロー効果を重ねます(Canvas 2Dオーバーレイとしてレンダリング)。効果のプリセットJSONを文字列で渡します。

  • Parameters
    • json(文字列): グロー効果のプリセット(JSON文字列)
  • Returns: なし

Example

webviewID.injectGlow(JSON.stringify({ color: "#FF4CAF50", intensity: 0.8 }));

removeGlow

injectGlowで追加したグロー効果を削除します。

  • Parameters: なし
  • Returns: なし

Example

webviewID.removeGlow();

Event

onFinished

現在のページの読み込みが完了したときに実行されます。

  • 種類: Event
  • ハンドラー引数: value - 読み込みが完了したページのURL
  • Returns: なし

Example

webviewID.onFinished = (value) => {
// value = 読み込みが完了したURL
};

onShouldOverrideUrl

読み込まれたページがhybrid://URL(ページ→ホストのIPCブリッジ)でホストにメッセージを送信したときに実行されます。ホストがナビゲーションをインターセプトして直接処理できるようになります。

  • 種類: Event
  • ハンドラー引数: value - ページが送信したデコード済みJSONペイロード(オブジェクト)
  • Returns: なし

Example

webviewID.onShouldOverrideUrl = (value) => {
if (value["FunctionName"] == "OnReceiveData") {
let data = value["Data"];
}
};

共通Widget Control(すべてのウィジェット)

注記

すべてのウィジェットは、setProperty / getProperty / setStylePropertyのような名前ベースの共通Widget Control(Method)を使用できます。共通リファレンスドキュメント(作成予定)を参照してください。