オブジェクト組み込みオブジェクト

オブジェクト WebView

ブラウザウィンドウオブジェクト

WebView はブラウザに組み込まれたウィンドウ コンポーネントで、現在 Windows、macOS(10.10+) のみをサポートしています。Windows では IE/Edge カーネルを使用し、macOS では WKWebView を使用します。

WebView の JavaScript プログラムと fibjs は同じエンジンにないため、ホスト プログラムと通信する必要がある場合は、メッセージを使用する必要があります。

WebView が通信に使用するオブジェクトは外部であり、1 つのメソッド postMessage と 2 つのイベント onmessage および onclose をサポートします。

簡単な通信サンプル コードは次のとおりです。

1 2 3 4 5 6 7 8 9
// index.js var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmessage = msg => console.log(msg); webview.onload = evt => webview.postMessage("hello from fibjs"); webview.wait();

index.html の内容は次のとおりです。

1 2 3 4 5 6 7 8
<script> external.onclose = function() { } external.onmessage = function(msg){ external.postMessage("send back: " + msg); }; </script>

ユーザー ウィンドウが閉じる前に、external.onclose イベントがトリガーされ、external.onclose は閉じるかどうかを決定できます。external.onclose が false を返す場合、操作はキャンセルされます。それ以外の場合、ウィンドウは閉じられます。

次の例では、ユーザーがクリックしてウィンドウを閉じた後、5 秒間待機します。

1 2 3 4 5 6 7 8 9 10 11 12
<script lang="JavaScript"> var bClose = false; external.onclose = function () { if (!bClose) { setTimeout(function () { bClose = true; window.close(); }, 5000); return false; } } </script>

上記のコードでは、window.close 自体も onclose イベントをトリガーするため、スイッチ変数を追加して、イベントを処理する必要があるかどうかを識別する必要があります。

継承

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>EventEmitter|new EventEmitter()|EventEmitter|defaultMaxListeners|on();addListener();prependListener();once();prependOnceListener();off();removeListener();removeAllListeners();setMaxListeners();getMaxListeners();listeners();listenerCount();eventNames();emit()] [<this>WebView|type;dev;onopen;onload;onaddress;ontitle;onmove;onresize;onclosed;onmessage|loadUrl();getUrl();setHtml();reload();goBack();goForward();print();printToPDF();executeJavaScript();executeDevToolsMethod();close();postMessage()] [object] <:- [EventEmitter] [EventEmitter] <:- [WebView] EventEmitter new EventEmitter() EventEmitter defaultMaxListeners on() addListener() prependListener() once() prependOnceListener() off() removeListener() removeAllListeners() setMaxListeners() getMaxListeners() listeners() listenerCount() eventNames() emit() WebView type dev onopen onload onaddress ontitle onmove onresize onclosed onmessage loadUrl() getUrl() setHtml() reload() goBack() goForward() print() printToPDF() executeJavaScript() executeDevToolsMethod() close() postMessage() object toString() toJSON()

静的プロパティ

defaultMaxListeners

整数、リスナーのデフォルトのグローバル最大数

1
static Integer WebView.defaultMaxListeners;

メンバーの属性

type

文字列、現在のウィンドウの WebView エンジン

1
readonly String WebView.type;

dev

値、DevTools アクセス オブジェクト、呼び出しインターフェイスを参照: https://chromedevtools.github.io/devtools-protocol/

1
readonly Value WebView.dev;

onopen

on("open", func); と同等の関数、クエリ、バインドの読み込み成功イベント。

1
Function WebView.onopen;

onload

on("load", func); と同等の関数、クエリ、バインドの読み込み成功イベント。

1
Function WebView.onload;

onaddress

on("address", func); と同等の、ページ アドレス変更イベントの関数、クエリ、バインド。

1
Function WebView.onaddress;

ontitle

on("title", func); と同等のページタイトル変更イベントの関数、クエリ、バインド。

1
Function WebView.ontitle;

onmove

on("move", func); と同等の関数、クエリ、バインド ウィンドウ移動イベント。

1
Function WebView.onmove;

次の例では、ウィンドウが移動したときのウィンドウの左上隅の座標を出力します。

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onmove = evt => console.log(evt.left, evt.top);

onresize

on("size", func); と同等の関数、クエリ、バインド ウィンドウ サイズ変更イベント。

1
Function WebView.onresize;

次の例は、ウィンドウのサイズが変更されたときにウィンドウのサイズを出力します。

1 2 3 4
var gui = require('gui'); var webview = gui.open('fs://index.html'); webview.onresize = evt => console.log(evt.width, evt.height);

onclosed

関数、クエリ、バインド ウィンドウのクローズ イベント。今回は、WebView が閉じられた後にトリガーされます。これは on("closed", func); と同等です。

1
Function WebView.onclosed;

onmessage

on("message", func); と同等の webview で postMessage イベントを受け入れる関数、クエリ、バインド。

1
Function WebView.onmessage;

メンバー関数

loadUrl

ロード指定 url のページ

1
WebView.loadUrl(String url) async;

呼び出しパラメータ:

  • url: 文字列、指定 url

getUrl

現在のページを照会する url

1
String WebView.getUrl() async;

結果を返す:

  • String、現在のページに戻る url

setHtml

webviewのページhtmlを設定

1
WebView.setHtml(String html) async;

呼び出しパラメータ:

  • html: 文字列、html を設定

reload

現在のページを更新

1
WebView.reload() async;

goBack

前のページに戻る

1
WebView.goBack() async;

goForward

次のページに進む

1
WebView.goForward() async;

print

現在のウィンドウ ドキュメントを印刷する

1
WebView.print(Integer mode = 1) async;

呼び出しパラメータ:

  • mode: 整数、印刷パラメータ、0: 高速印刷、1: 標準印刷、2: 印刷プレビュー。デフォルトは 1

printToPDF

現在のウィンドウ ドキュメントを PDF ファイルに出力します。

1
WebView.printToPDF(String file) async;

呼び出しパラメータ:

  • file: 文字列、pdf パスを指定

executeJavaScript

現在のウィンドウで JavaScript コードの一部を実行する

1
WebView.executeJavaScript(String code) async;

呼び出しパラメータ:

  • code: 文字列、実行する JavaScript コードを指定します

executeDevToolsMethod

現在のウィンドウで DevTools コマンドを実行し、結果を返す

1 2
Variant WebView.executeDevToolsMethod(String method, Object params = {}) async;

呼び出しパラメータ:

  • method: 文字列、実行する DevTools コマンドを指定します
  • params: オブジェクト、コマンドのパラメータを指定します

結果を返す:

  • Variant、実行結果を返す

close

現在のウィンドウを閉じる

1
WebView.close() async;

postMessage

ウェブビューにメッセージを送信

1
WebView.postMessage(String msg) async;

呼び出しパラメータ:

  • msg: 文字列、送信するメッセージ

    postMessage は、ウィンドウがロードされた後にメッセージを送信する必要があります。その前に送信されたメッセージは失われます。したがって、onload イベントがトリガーされた後にこのメソッドを呼び出すことをお勧めします。


on

イベントハンドラーをオブジェクトにバインドする

1 2
Object WebView.on(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

イベントハンドラーをオブジェクトにバインドする

1
Object WebView.on(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

addListener

イベントハンドラーをオブジェクトにバインドする

1 2
Object WebView.addListener(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

イベントハンドラーをオブジェクトにバインドする

1
Object WebView.addListener(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

prependListener

イベント ハンドラーをオブジェクトの先頭にバインドします。

1 2
Object WebView.prependListener(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

イベント ハンドラーをオブジェクトの先頭にバインドします。

1
Object WebView.prependListener(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

once

1 回限りのイベント処理関数をオブジェクトにバインドします。1 回限りの処理関数は 1 回だけトリガーされます。

1 2
Object WebView.once(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

1 回限りのイベント処理関数をオブジェクトにバインドします。1 回限りの処理関数は 1 回だけトリガーされます。

1
Object WebView.once(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

prependOnceListener

イベント ハンドラーをオブジェクトの先頭にバインドします。

1 2
Object WebView.prependOnceListener(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

イベント ハンドラーをオブジェクトの先頭にバインドします。

1
Object WebView.prependOnceListener(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

off

指定された関数をオブジェクト処理キューからキャンセルします

1 2
Object WebView.off(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

オブジェクト処理キュー内のすべての機能をキャンセルします

1
Object WebView.off(String ev);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

指定された関数をオブジェクト処理キューからキャンセルします

1
Object WebView.off(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

removeListener

指定された関数をオブジェクト処理キューからキャンセルします

1 2
Object WebView.removeListener(String ev, Function func);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定
  • func:関数、イベント処理関数を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

オブジェクト処理キュー内のすべての機能をキャンセルします

1
Object WebView.removeListener(String ev);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

指定された関数をオブジェクト処理キューからキャンセルします

1
Object WebView.removeListener(Object map);

呼び出しパラメータ:

  • map: オブジェクト、イベント マッピング関係を指定します。オブジェクト プロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

removeAllListeners

オブジェクト処理キューから全イベントの全リスナーを解除 イベントを指定している場合は、指定したイベントの全リスナーを削除します。

1
Object WebView.removeAllListeners(String ev);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

オブジェクト処理キューから全イベントの全リスナーを解除 イベントを指定している場合は、指定したイベントの全リスナーを削除します。

1
Object WebView.removeAllListeners(Array evs = []);

呼び出しパラメータ:

  • evs: 配列、イベントの名前を指定します

結果を返す:

  • Object, 連鎖呼び出しに便利なイベントオブジェクト自体を返す

setMaxListeners

互換性のためだけのリスナー数のデフォルト制限

1
WebView.setMaxListeners(Integer n);

呼び出しパラメータ:

  • n: 整数、イベント数を指定

getMaxListeners

互換性のためだけに、リスナーの数のデフォルトの制限を取得します

1
Integer WebView.getMaxListeners();

結果を返す:

  • Integer, デフォルトの制限数に戻す

listeners

クエリ オブジェクトの指定されたイベントのリスナーの配列

1
Array WebView.listeners(String ev);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定

結果を返す:

  • Array、指定されたイベントのリスナーの配列を返します

listenerCount

クエリ オブジェクトの指定されたイベントのリスナーの数

1
Integer WebView.listenerCount(String ev);

呼び出しパラメータ:

  • ev: 文字列、イベントの名前を指定

結果を返す:

  • Integer、指定されたイベントのリスナーの数を返します

eventNames

リスナーのイベント名を問い合わせる

1
Array WebView.eventNames();

結果を返す:

  • Array、イベント名の配列を返します

emit

イベントを積極的にトリガーする

1 2
Boolean WebView.emit(String ev, ...args);

呼び出しパラメータ:

  • ev: 文字列、イベント名
  • args: ...、イベント ハンドラーに渡されるイベント パラメーター

結果を返す:

  • Boolean、イベントトリガー状態に戻り、レスポンスイベントがあればtrue、そうでなければfalseを返す

toString

オブジェクトの文字列表現を返します。通常は「[ネイティブ オブジェクト]」を返します。オブジェクトは独自の特性に従って再実装できます。

1
String WebView.toString();

結果を返す:

  • String、オブジェクトの文字列表現を返します

toJSON

オブジェクトの JSON 形式の表現を返します。通常は、オブジェクトによって定義された読み取り可能な属性のコレクションを返します。

1
Value WebView.toJSON(String key = "");

呼び出しパラメータ:

  • key: ストリング、未使用

結果を返す:

  • Value、シリアライズ可能なJSONを含む値を返します