オブジェクトWebView
ブラウザウィンドウオブジェクト
WebViewはブラウザに埋め込まれたウィンドウコンポーネントであり、現在はウィンドウ、macOS(10.10+)のみをサポートしています。ウィンドウでIE / Edgeカーネルを使用し、macOSでWKWebViewを使用します。
WebViewとfibjsのJavaScriptプログラムは同じエンジンにないため、ホストプログラムと通信する必要がある場合は、メッセージを使用する必要があります。
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イベントをトリガーするため、イベントを処理する必要があるかどうかを識別するためにスイッチ変数を追加する必要があります。
継承
静的プロパティ
defaultMaxListeners
整数、リスナーのデフォルトのグローバル最大数
1static Integer WebView.defaultMaxListeners;
メンバー属性
type
文字列、現在のウィンドウのWebViewエンジン
1readonly String WebView.type;
dev
値、DevToolsアクセスオブジェクト。呼び出し元のインターフェイスを参照してください:https://chromedevtools.github.io/devtools-protocol/
1readonly Value WebView.dev;
onopen
on( "open"、func);と同等の関数、クエリ、およびバインドの読み込み成功イベント。
1Function WebView.onopen;
onload
on( "load"、func);と同等の関数、クエリ、およびバインドの読み込み成功イベント。
1Function WebView.onload;
onaddress
on( "address"、func);と同等の、ページアドレス変更イベントの関数、クエリ、およびバインド。
1Function WebView.onaddress;
ontitle
on( "title"、func);と同等の、ページタイトル変更イベントの関数、クエリ、およびバインド。
1Function WebView.ontitle;
onmove
on( "move"、func);と同等の、ウィンドウ移動イベントの関数、クエリ、およびバインド。
1Function WebView.onmove;
次の例では、ウィンドウを移動したときにウィンドウの左上隅の座標を出力します。
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
on( "size"、func);と同等の関数、クエリ、およびバインドウィンドウサイズ変更イベント。
1Function WebView.onresize;
次の例では、ウィンドウのサイズが変更されたときのウィンドウのサイズを出力します。
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
関数、クエリ、およびバインドウィンドウのクローズイベント。今回は、WebViewが閉じられた後にトリガーされます。これは、on( "closed"、func);と同等です。
1Function WebView.onclosed;
onmessage
on( "message"、func);と同等の、webviewでpostMessageイベントを受け入れるための関数、クエリ、およびバインド。
1Function WebView.onmessage;
ondownload
on( "download"、func);と同等の、Webビューでのダウンロードトランザクションステータス変更イベントを受け入れるための関数、クエリ、およびバインド。
1Function WebView.ondownload;
メンバー関数
loadUrl
指定された負荷 url のページ
1WebView.loadUrl(String url) async;
呼び出しパラメーター:
- url:文字列、指定 url
getUrl
現在のページをクエリする url
1String WebView.getUrl() async;
戻り結果:
- String、現在のページに戻る url
setHtml
webviewのページhtmlを設定します
1WebView.setHtml(String html) async;
呼び出しパラメーター:
- html:文字列、HTMLを設定
reload
現在のページを更新します
1WebView.reload() async;
goBack
前のページに戻る
1WebView.goBack() async;
goForward
次のページに進む
1WebView.goForward() async;
現在のウィンドウドキュメントを印刷する
1WebView.print(Integer mode = 1) async;
呼び出しパラメーター:
- mode:整数、印刷パラメータ、0:高速印刷、1:標準印刷、2:印刷プレビュー。デフォルトは1です
printToPDF
現在のウィンドウドキュメントをPDFファイルに印刷します
1WebView.printToPDF(String file) async;
呼び出しパラメーター:
- file:文字列、PDFパスを指定
executeJavaScript
現在のウィンドウでJavaScriptコードを実行します
1WebView.executeJavaScript(String code) async;
呼び出しパラメーター:
- code:文字列、実行するJavaScriptコードを指定します
executeDevToolsMethod
現在のウィンドウでDevToolsコマンドを実行し、結果を返します
1
2Variant WebView.executeDevToolsMethod(String method,
Object params = {}) async;
呼び出しパラメーター:
- method:文字列、実行するDevToolsコマンドを指定します
- params:オブジェクト、コマンドのパラメータを指定します
戻り結果:
- Variant、実行結果を返します
close
現在のウィンドウを閉じる
1WebView.close() async;
postMessage
Webビューにメッセージを送信します
1WebView.postMessage(String msg) async;
呼び出しパラメーター:
msg:文字列、送信するメッセージ
postMessageは、ウィンドウがロードされた後にメッセージを送信する必要があります。それ以前に送信されたメッセージは失われます。したがって、onloadイベントがトリガーされた後にこのメソッドを呼び出すことをお勧めします。
on
イベントハンドラーをオブジェクトにバインドします
1
2Object WebView.on(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
イベントハンドラーをオブジェクトにバインドします
1Object WebView.on(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定します。オブジェクトのプロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます。
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
addListener
イベントハンドラーをオブジェクトにバインドします
1
2Object WebView.addListener(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
イベントハンドラーをオブジェクトにバインドします
1Object WebView.addListener(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定します。オブジェクトのプロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます。
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
prependListener
イベントハンドラーをオブジェクトの先頭にバインドします
1
2Object WebView.prependListener(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
イベントハンドラーをオブジェクトの先頭にバインドします
1Object WebView.prependListener(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定します。オブジェクトのプロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます。
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
once
ワンタイムイベント処理関数をオブジェクトにバインドします。ワンタイム処理関数は1回だけトリガーされます
1
2Object WebView.once(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
ワンタイムイベント処理関数をオブジェクトにバインドします。ワンタイム処理関数は1回だけトリガーされます
1Object WebView.once(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定します。オブジェクトのプロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます。
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
prependOnceListener
イベントハンドラーをオブジェクトの先頭にバインドします
1
2Object WebView.prependOnceListener(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
イベントハンドラーをオブジェクトの先頭にバインドします
1Object WebView.prependOnceListener(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定します。オブジェクトのプロパティ名はイベント名として使用され、プロパティ値はイベント処理関数として使用されます。
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
off
指定された機能をオブジェクト処理キューからキャンセルします
1
2Object WebView.off(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
オブジェクト処理キュー内のすべての機能をキャンセルします
1Object WebView.off(String ev);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
指定された機能をオブジェクト処理キューからキャンセルします
1Object WebView.off(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定し、オブジェクトのプロパティ名をイベント名として使用し、プロパティ値をイベント処理関数として使用します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
removeListener
指定された機能をオブジェクト処理キューからキャンセルします
1
2Object WebView.removeListener(String ev,
Function func);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
- func:関数、イベント処理関数を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
オブジェクト処理キュー内のすべての機能をキャンセルします
1Object WebView.removeListener(String ev);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
指定された機能をオブジェクト処理キューからキャンセルします
1Object WebView.removeListener(Object map);
呼び出しパラメーター:
- map:オブジェクト、イベントマッピング関係を指定し、オブジェクトのプロパティ名をイベント名として使用し、プロパティ値をイベント処理関数として使用します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
removeAllListeners
オブジェクト処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーを削除します。
1Object WebView.removeAllListeners(String ev);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
オブジェクト処理キューからすべてのイベントのすべてのリスナーをキャンセルします。イベントが指定されている場合は、指定されたイベントのすべてのリスナーを削除します。
1Object WebView.removeAllListeners(Array evs = []);
呼び出しパラメーター:
- evs:配列、イベントの名前を指定します
戻り結果:
- Object、チェーン呼び出しに便利なイベントオブジェクト自体を返します
setMaxListeners
互換性のためだけの、リスナー数のデフォルト制限
1WebView.setMaxListeners(Integer n);
呼び出しパラメーター:
- n:整数、イベント数を指定
getMaxListeners
互換性のためにのみ、リスナー数のデフォルト制限を取得します
1Integer WebView.getMaxListeners();
戻り結果:
- Integer、デフォルトの制限数に戻ります
listeners
クエリオブジェクトの指定されたイベントのリスナーの配列
1Array WebView.listeners(String ev);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
戻り結果:
- Array、指定されたイベントのリスナーの配列を返します
listenerCount
クエリオブジェクトの指定されたイベントのリスナーの数
1Integer WebView.listenerCount(String ev);
呼び出しパラメーター:
- ev:文字列、イベントの名前を指定します
戻り結果:
- Integer、指定されたイベントのリスナーの数を返します
クエリオブジェクトの指定されたイベントのリスナーの数
1
2Integer WebView.listenerCount(Value o,
String ev);
呼び出しパラメーター:
- o:値、クエリのオブジェクトを指定します
- ev:文字列、イベントの名前を指定します
戻り結果:
- Integer、指定されたイベントのリスナーの数を返します
eventNames
リスナーのイベント名を照会します
1Array WebView.eventNames();
戻り結果:
- Array、イベント名の配列を返します
emit
イベントを積極的にトリガーする
1
2Boolean WebView.emit(String ev,
...args);
呼び出しパラメーター:
- ev:文字列、イベント名
- args:...、イベントパラメータ。イベントハンドラに渡されます。
戻り結果:
- Boolean、イベントトリガー状態に戻ります。応答イベントがある場合はtrueを返し、それ以外の場合はfalseを返します。
toString
オブジェクトの文字列表現を返します。通常は「[NativeObject]」を返します。オブジェクトは、独自の特性に従って再実装できます。
1String WebView.toString();
戻り結果:
- String、オブジェクトの文字列表現を返します
toJSON
オブジェクトのJSON形式の表現を返します。通常、オブジェクトによって定義された読み取り可能な属性のコレクションを返します。
1Value WebView.toJSON(String key = "");
呼び出しパラメーター:
- key:文字列、未使用
戻り結果:
- Value、シリアル化可能なJSONを含む値を返します