Oggetto WebView
Oggetto finestra del browser
WebView è un componente finestra incorporato nel browser, attualmente supporta solo Windows, macOS (10.10+). Usa il kernel IE / Edge in Windows, usa WKWebView in macOS.
Poiché il programma JavaScript in WebView e fibjs non sono nello stesso motore, se è necessario comunicare con il programma host, è necessario utilizzare i messaggi.
L'oggetto utilizzato da WebView per la comunicazione è esterno, che 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 utente venga chiusa, viene attivato l'evento external.onclose e external.onclose può decidere se chiudere. Se external.onclose restituisce false, l'operazione viene annullata, altrimenti la finestra verrà chiusa.
Il seguente esempio attenderà 5 secondi dopo che l'utente fa clic su Chiudi e quindi chiude 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 attiva anche l'evento onclose, è necessario aggiungere una variabile switch per identificare se l'evento deve essere elaborato.
Eredità
Proprietà statiche
defaultMaxListeners
Integer, il numero massimo globale predefinito di listener
1static Integer WebView.defaultMaxListeners;
Attributi dei membri
visible
Booleano, interroga e imposta se la finestra viene visualizzata
1Boolean WebView.visible;
onload
Funzione, query e bind caricamento evento di successo, equivalente a on ("load", func);
1Function WebView.onload;
onmove
Funzione, interrogazione e associazione di eventi di movimento della finestra, equivalente a on ("move", func);
1Function WebView.onmove;
L'esempio seguente produrrà le coordinate dell'angolo superiore sinistro della finestra quando la finestra viene spostata:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Evento di modifica della dimensione della finestra di funzioni, query e bind, equivalente a on ("size", func);
1Function WebView.onresize;
L'esempio seguente produrrà la dimensione della finestra quando la finestra 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
Evento di chiusura della finestra di funzione, query e bind, questa volta verrà attivato dopo la chiusura di WebView, equivalente a on ("closed", func);
1Function WebView.onclosed;
onmessage
Funzione, query e associazione per accettare l'evento postMessage in webview, equivalente a on ("message", func);
1Function WebView.onmessage;
Funzione membro
setHtml
Imposta l'html della pagina di webview
1WebView.setHtml(String html) async;
Parametri di chiamata:
- html : String, imposta html
Stampa il documento della finestra corrente
1WebView.print(Integer mode = 1) async;
Parametri di chiamata:
- mode : numero intero, parametro di stampa, 0: stampa veloce; 1: stampa standard; 2: anteprima di stampa. L'impostazione predefinita è 1
close
Chiudi la finestra corrente
1WebView.close() async;
postMessage
Invia un messaggio alla visualizzazione web
1WebView.postMessage(String msg) async;
Parametri di chiamata:
msg: String, il messaggio da inviare
postMessage deve inviare un messaggio dopo che la finestra è stata caricata, i messaggi inviati prima andranno persi. Pertanto, si consiglia di chiamare questo metodo dopo l'attivazione dell'evento onload.
on
Associare un gestore di 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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Associare un gestore di eventi all'oggetto
1Object WebView.on(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto sarà il nome dell'evento e il valore della proprietà sarà la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
addListener
Associare un gestore di 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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Associare un gestore di eventi all'oggetto
1Object WebView.addListener(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto sarà il nome dell'evento e il valore della proprietà sarà la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
prependListener
Associa un gestore di eventi all'inizio 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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Associa un gestore di eventi all'inizio dell'oggetto
1Object WebView.prependListener(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto sarà il nome dell'evento e il valore della proprietà sarà la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
once
Associa una funzione di elaborazione di eventi una tantum all'oggetto, la funzione di elaborazione una tantum verrà attivata 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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Associa una funzione di elaborazione di eventi una tantum all'oggetto, la funzione di elaborazione una tantum verrà attivata solo una volta
1Object WebView.once(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto sarà il nome dell'evento e il valore della proprietà sarà la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
prependOnceListener
Associa un gestore di eventi all'inizio 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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Associa un gestore di eventi all'inizio dell'oggetto
1Object WebView.prependOnceListener(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto sarà il nome dell'evento e il valore della proprietà sarà la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
off
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare 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
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
1Object WebView.off(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto viene utilizzato come nome dell'evento e il valore della proprietà viene utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
removeListener
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
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 degli eventi
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare 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
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
1Object WebView.removeListener(Object map);
Parametri di chiamata:
- map : Object, specifica la relazione di mappatura degli eventi, il nome della proprietà dell'oggetto viene utilizzato come nome dell'evento e il valore della proprietà viene utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
removeAllListeners
Annulla tutti i listener di tutti gli eventi dalla coda di elaborazione degli oggetti. Se viene specificato un evento, rimuovere tutti i listener dell'evento specificato.
1Object WebView.removeAllListeners(Array evs = []);
Parametri di chiamata:
- evs : Array, specifica il nome dell'evento
Risultato di ritorno:
- Object , restituisce l'oggetto evento stesso, facile da chiamare a catena
setMaxListeners
Il limite predefinito del numero di listener, solo per compatibilità
1WebView.setMaxListeners(Integer n);
Parametri di chiamata:
- n : intero, specifica il numero di eventi
getMaxListeners
Ottieni il limite predefinito del numero di listener, solo per compatibilità
1Integer WebView.getMaxListeners();
Risultato di ritorno:
- Integer , restituisce il numero limite predefinito
listeners
Matrice di listener per l'evento specificato dell'oggetto query
1Array WebView.listeners(String ev);
Parametri di chiamata:
- ev : String, specifica il nome dell'evento
Risultato di ritorno:
- Array , restituisce un array di listener per l'evento specificato
listenerCount
Il numero di listener per l'evento specificato dell'oggetto query
1Integer WebView.listenerCount(String ev);
Parametri di chiamata:
- ev : String, specifica il nome dell'evento
Risultato di ritorno:
- Integer , restituisce il numero di listener per l'evento specificato
eventNames
Nome dell'evento del listener di query
1Array WebView.eventNames();
Risultato di ritorno:
- Array , restituisce un array di nomi di eventi
emit
Attiva un evento
1
2Boolean WebView.emit(String ev,
...args);
Parametri di chiamata:
- ev : String, nome evento
- args : ..., parametri dell'evento, che verranno passati al gestore dell'evento
Risultato di ritorno:
- Boolean , restituisce lo stato di attivazione dell'evento, restituisce true se è presente un evento di risposta, altrimenti restituisce false
toString
Restituisce la rappresentazione in stringa dell'oggetto, generalmente restituisce "[Native Object]", l'oggetto può essere reimplementato secondo le proprie caratteristiche
1String WebView.toString();
Risultato di ritorno:
- String , restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce la rappresentazione in formato JSON dell'oggetto, generalmente restituisce una raccolta di attributi leggibili definiti dall'oggetto
1Value WebView.toJSON(String key = "");
Parametri di chiamata:
- key : stringa, non utilizzata
Risultato di ritorno:
- Value , restituisce un valore contenente JSON serializzabile