ObjectWebView
oggetto della finestra del browser
WebView è un componente finestra incorporato nel browser. Attualmente supporta solo Windows e macOS (10.10+). Utilizza il kernel IE/Edge in Windows e WKWebView in macOS.
Poiché il programma JavaScript in WebView e fibjs non si trovano nello stesso motore, se è necessario comunicare con il programma host, è necessario farlo tramite messaggi.
L'oggetto utilizzato per la comunicazione da WebView è esterno.External supporta un metodo postMessage e due eventi onmessage e onclose.
Un semplice codice di esempio di comunicazione è il seguente:
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();
Il contenuto di index.html è il seguente:
1
2
3
4
5
6
7
8<script>
external.onclose = function() {
}
external.onmessage = function(msg){
external.postMessage("send back: " + msg);
};
</script>
Prima che la finestra dell'utente venga chiusa, verrà attivato l'evento external.onclose e external.onclose potrà decidere se chiuderla. Se external.onclose restituisce false l'operazione viene annullata, altrimenti la finestra verrà chiusa.
L'esempio seguente attenderà 5 secondi dopo che l'utente ha fatto clic su Chiudi prima di chiudere la finestra.
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>
Nel codice precedente, poiché window.close stesso attiverà anche l'evento onclose, è necessario aggiungere una variabile switch per identificare se questo evento deve essere elaborato.
rapporto ereditario
proprietà statiche
defaultMaxListeners
Intero, il numero massimo globale predefinito di ascoltatori
1static Integer WebView.defaultMaxListeners;
proprietà dei membri
onopen
Evento di successo del caricamento di funzioni, query ed associazioni, equivalente a on("open", func);
1Function WebView.onopen;
onload
Funzione, query e associazione eventi di successo di caricamento, equivalente a on("load", func);
1Function WebView.onload;
onaddress
Eventi di modifica dell'indirizzo di funzione, query e associazione della pagina, equivalenti a on("address", func);
1Function WebView.onaddress;
ontitle
Eventi di modifica del titolo di funzione, query e associazione della pagina, equivalenti a on("title", func);
1Function WebView.ontitle;
onmove
Funzione, interroga e associa eventi di movimento della finestra, equivalente a on("move", func);
1Function WebView.onmove;
L'esempio seguente restituisce le coordinate dell'angolo superiore sinistro della finestra mentre si sposta:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Funzione, interroga e associa eventi di modifica della dimensione della finestra, equivalente a on("size", func);
1Function WebView.onresize;
L'esempio seguente restituisce le dimensioni di una finestra quando viene ridimensionata:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Funziona, interroga e associa l'evento di chiusura della finestra. Questa volta verrà attivato dopo la chiusura di WebView, che equivale a on("chiuso", func);
1Function WebView.onclosed;
onmessage
Funzione, query e associazione accettano eventi di messaggio postMessage in webview, equivalenti a on("message", func);
1Function WebView.onmessage;
ondownload
Funzione, query e associazione accettano eventi di modifica dello stato della transazione di download nella visualizzazione web, equivalente a on("download", func);
1Function WebView.ondownload;
funzione membro
loadUrl
carico specificatourlla pagina
1WebView.loadUrl(String url) async;
Parametri di chiamata:
- url: stringa, specificataurl
getUrl
Interroga la pagina correnteurl
1String WebView.getUrl() async;
Risultati restituiti:
- String, restituisce la pagina correnteurl
setHtml
Imposta la pagina html di webview
1WebView.setHtml(String html) async;
Parametri di chiamata:
- html: Stringa, imposta html
reload
Aggiorna la pagina corrente
1WebView.reload() async;
goBack
ritorna alla pagina precedente
1WebView.goBack() async;
goForward
Vai alla pagina successiva
1WebView.goForward() async;
Stampa il documento della finestra corrente
1WebView.print(Integer mode = 1) async;
Parametri di chiamata:
- mode: Numero intero, parametri di stampa, 0: stampa veloce; 1: stampa standard; 2: anteprima di stampa. L'impostazione predefinita è 1
executeJavaScript
Esegui un pezzo di codice JavaScript nella finestra corrente
1WebView.executeJavaScript(String code) async;
Parametri di chiamata:
- code: String, specifica il codice JavaScript da eseguire
close
Chiudi la finestra corrente
1WebView.close() async;
postMessage
Invia un messaggio a Webview
1WebView.postMessage(String msg) async;
Parametri di chiamata:
msg: String, il messaggio da inviare
postMessage deve inviare il messaggio dopo che la finestra è stata caricata e i messaggi inviati prima andranno persi. Pertanto, si consiglia di chiamare questo metodo dopo l'attivazione dell'evento onload.
on
Associa un gestore eventi all'oggetto
1
2Object WebView.on(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object WebView.on(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
addListener
Associa un gestore eventi all'oggetto
1
2Object WebView.addListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'oggetto
1Object WebView.addListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object WebView.prependListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object WebView.prependListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
once
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1
2Object WebView.once(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore di eventi monouso all'oggetto. Il gestore di eventi monouso verrà attivato solo una volta.
1Object WebView.once(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
prependOnceListener
Associa un gestore eventi all'origine dell'oggetto
1
2Object WebView.prependOnceListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Associa un gestore eventi all'origine dell'oggetto
1Object WebView.prependOnceListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto verrà utilizzato come nome dell'evento e il valore dell'attributo verrà utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
off
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object WebView.off(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object WebView.off(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object WebView.off(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeListener
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1
2Object WebView.removeListener(String ev,
Function func);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutte le funzioni nella coda di elaborazione degli oggetti
1Object WebView.removeListener(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annullare l'assegnazione di una funzione dalla coda di elaborazione degli oggetti
1Object WebView.removeListener(Object map);
Parametri di chiamata:
- map: Oggetto, specifica la relazione di mappatura degli eventi, il nome dell'attributo dell'oggetto viene utilizzato come nome dell'evento e il valore dell'attributo viene utilizzato come funzione di elaborazione dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
removeAllListeners
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object WebView.removeAllListeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
Annulla tutti i listener per tutti gli eventi dalla coda di elaborazione dell'oggetto. Se viene specificato un evento, rimuove tutti i listener per l'evento specificato.
1Object WebView.removeAllListeners(Array evs = []);
Parametri di chiamata:
- evs: Array, specifica il nome dell'evento
Risultati restituiti:
- Object, restituisce l'oggetto evento stesso per facilitare le chiamate a catena
setMaxListeners
Il limite predefinito sul numero di ascoltatori, solo per compatibilità
1WebView.setMaxListeners(Integer n);
Parametri di chiamata:
- n: Numero intero, specifica il numero di eventi
getMaxListeners
Ottiene il numero limite predefinito di ascoltatori, solo per compatibilità
1Integer WebView.getMaxListeners();
Risultati restituiti:
- Integer, restituisce la quantità limite predefinita
listeners
Interroga l'array del listener per l'evento specificato dell'oggetto
1Array WebView.listeners(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Array, restituisce l'array del listener per l'evento specificato
listenerCount
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1Integer WebView.listenerCount(String ev);
Parametri di chiamata:
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
Interroga il numero di ascoltatori per l'evento specificato dell'oggetto
1
2Integer WebView.listenerCount(Value o,
String ev);
Parametri di chiamata:
- o: Valore, specifica l'oggetto della query
- ev: String, specifica il nome dell'evento
Risultati restituiti:
- Integer, restituisce il numero di ascoltatori per l'evento specificato
eventNames
Interroga il nome dell'evento del listener
1Array WebView.eventNames();
Risultati restituiti:
- Array, restituisce una matrice di nomi di eventi
emit
Attiva attivamente un evento
1
2Boolean WebView.emit(String ev,
...args);
Parametri di chiamata:
- ev: stringa, nome dell'evento
- args: ..., i parametri dell'evento verranno passati alla funzione di elaborazione degli eventi
Risultati restituiti:
- Boolean, restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String WebView.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value WebView.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile