ObjectWebView
Browserfensterobjekt
WebView ist eine in den Browser eingebettete Fensterkomponente. Derzeit werden nur Windows und macOS (10.10+) unterstützt. Es verwendet den IE/Edge-Kernel in Windows und WKWebView in macOS.
Da sich das JavaScript-Programm in WebView und fibjs nicht in derselben Engine befinden, muss die Kommunikation mit dem Host-Programm über Nachrichten erfolgen.
Das von WebView für die Kommunikation verwendete Objekt ist extern. External unterstützt eine Methode postMessage und zwei Ereignisse onmessage und onclose.
Ein einfacher Beispielcode für die Kommunikation lautet wie folgt:
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();
Der Inhalt von index.html lautet wie folgt:
1
2
3
4
5
6
7
8<script>
external.onclose = function() {
}
external.onmessage = function(msg){
external.postMessage("send back: " + msg);
};
</script>
Bevor das Benutzerfenster geschlossen wird, wird das Ereignis external.onclose ausgelöst und external.onclose kann entscheiden, ob es geschlossen werden soll. Wenn external.onclose false zurückgibt, wird der Vorgang abgebrochen, andernfalls wird das Fenster geschlossen.
Im folgenden Beispiel wird 5 Sekunden gewartet, nachdem der Benutzer auf „Schließen“ geklickt hat, bevor das Fenster geschlossen wird.
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>
Da im obigen Code window.close selbst auch das Ereignis onclose auslöst, muss eine Schaltervariable hinzugefügt werden, um festzustellen, ob dieses Ereignis verarbeitet werden muss.
Erbschaftsverhältnis
statische Eigenschaften
defaultMaxListeners
Ganzzahl, die standardmäßige globale maximale Anzahl von Listenern
1static Integer WebView.defaultMaxListeners;
Mitgliedereigenschaften
onopen
Erfolgreiches Laden von Funktionen, Abfragen und Bindungen, äquivalent zu on("open", func);
1Function WebView.onopen;
onload
Funktion, Abfrage und Bindung von Ladeerfolgsereignissen, äquivalent zu on("load", func);
1Function WebView.onload;
onaddress
Funktion, Abfrage und Bindung von Seitenadressen-Änderungsereignissen, äquivalent zu on("address", func);
1Function WebView.onaddress;
ontitle
Funktion, Abfrage und Bindung von Seitentiteländerungsereignissen, äquivalent zu on("title", func);
1Function WebView.ontitle;
onmove
Funktion, Abfrage und Bindung von Fensterbewegungsereignissen, äquivalent zu on("move", func);
1Function WebView.onmove;
Das folgende Beispiel gibt die Koordinaten der oberen linken Ecke des Fensters aus, während es verschoben wird:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Funktion, Abfragen und Bindung von Ereignissen zur Änderung der Fenstergröße, äquivalent zu on("size", func);
1Function WebView.onresize;
Das folgende Beispiel gibt die Abmessungen eines Fensters aus, wenn dessen Größe geändert wird:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Funktion, Abfrage und Bindung des Fensterschließereignisses. Diese Zeit wird nach dem Schließen von WebView ausgelöst, was on("closed", func); entspricht.
1Function WebView.onclosed;
onmessage
Funktion, Abfrage und Bindung akzeptieren PostMessage-Nachrichtenereignisse in der Webansicht, äquivalent zu on("message", func);
1Function WebView.onmessage;
ondownload
Funktion, Abfrage und Bindung akzeptieren Download-Transaktionsstatusänderungsereignisse in der Webansicht, äquivalent zu on("download", func);
1Function WebView.ondownload;
Mitgliedsfunktion
loadUrl
Last angegebenurldie Seite
1WebView.loadUrl(String url) async;
Aufrufparameter:
- url: String, angegebenurl
getUrl
Fragen Sie die aktuelle Seite aburl
1String WebView.getUrl() async;
Rückgabeergebnisse:
- String, gibt die aktuelle Seite zurückurl
setHtml
Legen Sie den Seiten-HTML der Webansicht fest
1WebView.setHtml(String html) async;
Aufrufparameter:
- html: String, HTML festlegen
reload
Aktuelle Seite aktualisieren
1WebView.reload() async;
goBack
Zur vorherigen Seite zurückkehren
1WebView.goBack() async;
goForward
Gehen Sie zur nächsten Seite
1WebView.goForward() async;
Drucken Sie das aktuelle Fensterdokument
1WebView.print(Integer mode = 1) async;
Aufrufparameter:
- mode: Ganzzahl, Druckparameter, 0: schneller Druck; 1: Standarddruck; 2: Druckvorschau. Der Standardwert ist 1
executeJavaScript
Führen Sie einen Teil des JavaScript-Codes im aktuellen Fenster aus
1WebView.executeJavaScript(String code) async;
Aufrufparameter:
- code: String, gibt den auszuführenden JavaScript-Code an
close
Aktuelles Fenster schließen
1WebView.close() async;
postMessage
Nachricht an Webview senden
1WebView.postMessage(String msg) async;
Aufrufparameter:
msg: String, die zu sendende Nachricht
postMessage muss die Nachricht senden, nachdem das Fenster geladen wurde, und die zuvor gesendeten Nachrichten gehen verloren. Daher wird empfohlen, diese Methode aufzurufen, nachdem das Onload-Ereignis ausgelöst wurde.
on
Binden Sie einen Event-Handler an das Objekt
1
2Object WebView.on(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object WebView.on(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
addListener
Binden Sie einen Event-Handler an das Objekt
1
2Object WebView.addListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Event-Handler an das Objekt
1Object WebView.addListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object WebView.prependListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object WebView.prependListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
once
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1
2Object WebView.once(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen einmaligen Ereignishandler an das Objekt. Der einmalige Handler wird nur einmal ausgelöst.
1Object WebView.once(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
prependOnceListener
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1
2Object WebView.prependOnceListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Binden Sie einen Ereignishandler an den Ursprung des Objekts
1Object WebView.prependOnceListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
off
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object WebView.off(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object WebView.off(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object WebView.off(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeListener
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1
2Object WebView.removeListener(String ev,
Function func);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
- func: Funktion, geben Sie die Ereignisverarbeitungsfunktion an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Brechen Sie alle Funktionen in der Objektverarbeitungswarteschlange ab
1Object WebView.removeListener(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Heben Sie die Zuweisung einer Funktion zur Objektverarbeitungswarteschlange auf
1Object WebView.removeListener(Object map);
Aufrufparameter:
- map: Objekt, gibt die Ereigniszuordnungsbeziehung an, der Objektattributname wird als Ereignisname und der Wert des Attributs als Ereignisverarbeitungsfunktion verwendet
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
removeAllListeners
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object WebView.removeAllListeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
Löscht alle Listener für alle Ereignisse aus der Verarbeitungswarteschlange des Objekts. Wenn ein Ereignis angegeben ist, werden alle Listener für das angegebene Ereignis entfernt.
1Object WebView.removeAllListeners(Array evs = []);
Aufrufparameter:
- evs: Array, geben Sie den Namen des Ereignisses an
Rückgabeergebnisse:
- Object, gibt das Ereignisobjekt selbst zurück, um Kettenaufrufe zu erleichtern
setMaxListeners
Die Standardbeschränkung für die Anzahl der Listener dient nur der Kompatibilität
1WebView.setMaxListeners(Integer n);
Aufrufparameter:
- n: Ganzzahl, geben Sie die Anzahl der Ereignisse an
getMaxListeners
Ruft nur aus Kompatibilitätsgründen die standardmäßige maximale Anzahl von Listenern ab
1Integer WebView.getMaxListeners();
Rückgabeergebnisse:
- Integer, gibt die Standardgrenzmenge zurück
listeners
Fragen Sie das Listener-Array nach dem angegebenen Ereignis des Objekts ab
1Array WebView.listeners(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Array, gibt das Listener-Array für das angegebene Ereignis zurück
listenerCount
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1Integer WebView.listenerCount(String ev);
Aufrufparameter:
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
Fragen Sie die Anzahl der Listener für das angegebene Ereignis des Objekts ab
1
2Integer WebView.listenerCount(Value o,
String ev);
Aufrufparameter:
- o: Wert, gibt das Objekt der Abfrage an
- ev: String, gibt den Namen des Ereignisses an
Rückgabeergebnisse:
- Integer, gibt die Anzahl der Listener für das angegebene Ereignis zurück
eventNames
Name des Abfrage-Listener-Ereignisses
1Array WebView.eventNames();
Rückgabeergebnisse:
- Array, gibt ein Array von Ereignisnamen zurück
emit
Ein Ereignis aktiv auslösen
1
2Boolean WebView.emit(String ev,
...args);
Aufrufparameter:
- ev: String, Ereignisname
- args: ..., Ereignisparameter werden an die Ereignisverarbeitungsfunktion übergeben
Rückgabeergebnisse:
- Boolean, gibt den Ereignisauslöserstatus zurück, gibt „true“ zurück, wenn ein Antwortereignis vorliegt, andernfalls wird „false“ zurückgegeben
toString
Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.
1String WebView.toString();
Rückgabeergebnisse:
- String, gibt die Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.
1Value WebView.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnisse:
- Value, gibt einen Wert zurück, der JSON serialisierbar enthält