Oggetto WebView
Oggetto finestra del browser
WebView è un componente della finestra incorporato nel browser, attualmente supporta solo Windows, macOS (10.10+).Utilizzare il kernel IE/Edge in Windows, utilizzare 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, verrà attivato l'evento external.onclose e external.onclose può decidere se chiuderlo. Se external.onclose restituisce false, l'operazione viene annullata, altrimenti la finestra verrà chiusa.
L'esempio seguente attende 5 secondi dopo che l'utente ha fatto 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
Intero, il numero massimo globale predefinito di ascoltatori
1static Integer WebView.defaultMaxListeners;
Attributi dei membri
type
String, il motore WebView della finestra corrente
1readonly String WebView.type;
dev
Valore, oggetto di accesso DevTools, fare riferimento all'interfaccia chiamante: https://chromedevtools.github.io/devtools-protocol/
1readonly Value WebView.dev;
onopen
Evento di successo del caricamento di funzioni, query e bind, equivalente a on("open", func);
1Function WebView.onopen;
onload
Evento di successo del caricamento di funzioni, query e bind, equivalente a on("load", func);
1Function WebView.onload;
onaddress
Funzione, interrogazione e associazione dell'evento di modifica dell'indirizzo della pagina, equivalente a on("address", func);
1Function WebView.onaddress;
ontitle
Funzione, interrogazione e associazione dell'evento di modifica del titolo della pagina, equivalente a on("title", func);
1Function WebView.ontitle;
onmove
Funzione, interrogazione e associazione degli eventi di spostamento della finestra, equivalente a on("move", func);
1Function WebView.onmove;
L'esempio seguente restituirà le coordinate dell'angolo in alto a sinistra 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 funzione, query e associazione, equivalente a on("size", func);
1Function WebView.onresize;
L'esempio seguente restituirà 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
Funzione, query e evento di chiusura della finestra di associazione, questa volta verrà attivato dopo la chiusura di WebView, equivalente a on ("chiuso", func);
1Function WebView.onclosed;
onmessage
Funzione, interrogazione e associazione per accettare l'evento postMessage in webview, equivalente a on("message", func);
1Function WebView.onmessage;
ondownload
Funzione, interrogazione e associazione per accettare l'evento di modifica dello stato della transazione di download nella visualizzazione Web, che è equivalente a on("download", func);
1Function WebView.ondownload;
Funzione membro
loadUrl
Carico specificato url Pagina di
1WebView.loadUrl(String url) async;
Parametri di chiamata:
- url: Stringa, specificata url
getUrl
Interroga la pagina corrente url
1String WebView.getUrl() async;
Risultato di ritorno:
- String, Torna alla pagina corrente url
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
torna alla PAGINA precedente
1WebView.goBack() async;
goForward
Passa alla pagina successiva
1WebView.goForward() async;
Stampa il documento della finestra corrente
1WebView.print(Integer mode = 1) async;
Parametri di chiamata:
- mode: Intero, parametro di stampa, 0: stampa veloce; 1: stampa standard; 2: anteprima di stampa. Il valore predefinito è 1
printToPDF
Stampa il documento della finestra corrente in un file PDF
1WebView.printToPDF(String file) async;
Parametri di chiamata:
- file: Stringa, specifica il percorso pdf
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
executeDevToolsMethod
Esegui il comando DevTools nella finestra corrente e restituisci il risultato
1
2Variant WebView.executeDevToolsMethod(String method,
Object params = {}) async;
Parametri di chiamata:
- method: String, specifica il comando DevTools da eseguire
- params: Oggetto, specificare i parametri del comando
Risultato di ritorno:
- Variant, Restituisce il risultato dell'esecuzione
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
Associa un gestore di eventi all'oggetto
1
2Object WebView.on(String ev,
Function func);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Associa un gestore di eventi all'oggetto
1Object WebView.on(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, il nome della proprietà dell'oggetto verrà utilizzato come nome dell'evento e il valore della proprietà verrà utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
addListener
Associa un gestore di eventi all'oggetto
1
2Object WebView.addListener(String ev,
Function func);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Associa un gestore di eventi all'oggetto
1Object WebView.addListener(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, il nome della proprietà dell'oggetto verrà utilizzato come nome dell'evento e il valore della proprietà verrà utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
prependListener
Associa un gestore di eventi all'inizio dell'oggetto
1
2Object WebView.prependListener(String ev,
Function func);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Associa un gestore di eventi all'inizio dell'oggetto
1Object WebView.prependListener(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, il nome della proprietà dell'oggetto verrà utilizzato come nome dell'evento e il valore della proprietà verrà utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
once
Associa una funzione di elaborazione dell'evento 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: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Associa una funzione di elaborazione dell'evento una tantum all'oggetto, la funzione di elaborazione una tantum verrà attivata solo una volta
1Object WebView.once(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, il nome della proprietà dell'oggetto verrà utilizzato come nome dell'evento e il valore della proprietà verrà utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
prependOnceListener
Associa un gestore di eventi all'inizio dell'oggetto
1
2Object WebView.prependOnceListener(String ev,
Function func);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Associa un gestore di eventi all'inizio dell'oggetto
1Object WebView.prependOnceListener(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, il nome della proprietà dell'oggetto verrà utilizzato come nome dell'evento e il valore della proprietà verrà utilizzato come funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata 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: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Annulla tutte le funzioni nella coda di elaborazione dell'oggetto
1Object WebView.off(String ev);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
1Object WebView.off(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, 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, che è conveniente per la chiamata 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: Stringa, specifica il nome dell'evento
- func: Funzione, specifica la funzione di elaborazione dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Annulla tutte le funzioni nella coda di elaborazione dell'oggetto
1Object WebView.removeListener(String ev);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Annulla la funzione specificata dalla coda di elaborazione dell'oggetto
1Object WebView.removeListener(Object map);
Parametri di chiamata:
- map: Oggetto, specificare la relazione di mappatura dell'evento, 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, che è conveniente per la chiamata a catena
removeAllListeners
Annulla tutti i listener di tutti gli eventi dalla coda di elaborazione dell'oggetto.Se viene specificato un evento, rimuovere tutti i listener dell'evento specificato.
1Object WebView.removeAllListeners(String ev);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Object, Restituisce l'oggetto evento stesso, che è conveniente per la chiamata a catena
Annulla tutti i listener di tutti gli eventi dalla coda di elaborazione dell'oggetto.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, che è conveniente per la chiamata a catena
setMaxListeners
Il limite predefinito del numero di ascoltatori, 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 ascoltatori, solo per compatibilità
1Integer WebView.getMaxListeners();
Risultato di ritorno:
- Integer, Torna al numero limite predefinito
listeners
Array di ascoltatori per l'evento specificato dell'oggetto query
1Array WebView.listeners(String ev);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Array, Restituisce un array di ascoltatori per l'evento specificato
listenerCount
Il numero di ascoltatori per l'evento specificato dell'oggetto query
1Integer WebView.listenerCount(String ev);
Parametri di chiamata:
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Integer, Restituisce il numero di ascoltatori per l'evento specificato
Il numero di ascoltatori per l'evento specificato dell'oggetto query
1
2Integer WebView.listenerCount(Value o,
String ev);
Parametri di chiamata:
- o: Valore, specifica l'oggetto della query
- ev: Stringa, specifica il nome dell'evento
Risultato di ritorno:
- Integer, Restituisce il numero di ascoltatori per l'evento specificato
eventNames
Interroga il nome dell'evento dell'ascoltatore
1Array WebView.eventNames();
Risultato di ritorno:
- Array, Restituisce un array 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: ..., parametri dell'evento, che verranno passati al gestore dell'evento
Risultato di ritorno:
- Boolean, Ritorna allo stato di attivazione dell'evento, restituisce true se c'è un evento di risposta, altrimenti restituisce false
toString
Restituisce la rappresentazione in stringa dell'oggetto, generalmente restituisce "[Native Object]", l'oggetto può essere re-implementato 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, inutilizzata
Risultato di ritorno:
- Value, Restituisce un valore contenente JSON serializzabile