Obxecto WebView
Obxecto da xanela do explorador
WebView é un compoñente de xanela incrustado no navegador, actualmente só admite Windows, macOS (10.10+). Use o núcleo IE / Edge en Windows, use WKWebView en macOS.
Debido a que o programa JavaScript en WebView e fibjs non están no mesmo motor, se precisa comunicarse co programa host, cómpre empregar mensaxes.
O obxecto empregado por WebView para a comunicación é externo, o que admite un método postMessage e dous eventos onmessage e onclose.
Un código de exemplo de comunicación simple é o seguinte:
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();
O contido de index.html é o seguinte:
1
2
3
4
5
6
7
8<script>
external.onclose = function() {
}
external.onmessage = function(msg){
external.postMessage("send back: " + msg);
};
</script>
Antes de pechar a xanela do usuario, activarase o evento external.onclose e external.onclose pode decidir se se pecha. Se external.onclose devolve false, a operación cancelarase, se non, a xanela pecharase.
O seguinte exemplo agardará 5 segundos despois de que o usuario faga clic en pechar e logo peche a xanela.
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>
No código anterior, porque window.close tamén desencadea o evento onclose, hai que engadir unha variable de cambio para identificar se o evento debe procesarse.
Herdanza
Propiedades estáticas
defaultMaxListeners
Entero, o número máximo predeterminado global de oíntes
1static Integer WebView.defaultMaxListeners;
Atributos dos membros
type
String, o motor WebView da xanela actual
1readonly String WebView.type;
dev
Valor, obxecto de acceso a DevTools, consulte a interface de chamada: https://chromedevtools.github.io/devtools-protocol/
1readonly Value WebView.dev;
onopen
Función, consulta e evento de éxito de carga de bind, equivalente a on ("aberto", func);
1Function WebView.onopen;
onload
Función, consulta e evento de éxito de carga de bind, equivalente a on ("load", func);
1Function WebView.onload;
onaddress
Funciona, consulta e enlaza o evento de cambio de enderezo da páxina, equivalente a on ("enderezo", func);
1Function WebView.onaddress;
ontitle
Funciona, consulta e enlaza o evento de cambio de título da páxina, equivalente a on ("título", func);
1Function WebView.ontitle;
onmove
Función, consulta e acontecementos de movemento de xanelas, equivalentes a on ("mover", func);
1Function WebView.onmove;
O seguinte exemplo mostrará as coordenadas da esquina superior esquerda da xanela cando se move a xanela:
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 de cambio de tamaño de xanela de función, consulta e vinculación, equivalente a activado ("tamaño", func);
1Function WebView.onresize;
O seguinte exemplo mostrará o tamaño da xanela cando se redimensiona a xanela:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Función, consulta e evento de peche da xanela de enlace, esta vez activarase despois de que WebView estea pechado, equivalente a on ("pechado", func);
1Function WebView.onclosed;
onmessage
Función, consulta e vinculación para aceptar o evento postMessage en webview, equivalente a on ("mensaxe", func);
1Function WebView.onmessage;
ondownload
Función, consulta e vinculación para aceptar o evento de cambio de estado de transacción de descarga na webview, que equivale a activado ("descarga", func);
1Function WebView.ondownload;
Función de membro
loadUrl
Carga especificada url Páxina de
1WebView.loadUrl(String url) async;
Parámetros de chamada:
- url: Cadea, especificada url
getUrl
Consulte a páxina actual url
1String WebView.getUrl() async;
Resultado de volta:
- String, Volver á páxina actual url
setHtml
Configure o html da páxina webview
1WebView.setHtml(String html) async;
Parámetros de chamada:
- html: Cadea, define html
reload
Actualiza a páxina actual
1WebView.reload() async;
goBack
Volver á páxina anterior
1WebView.goBack() async;
goForward
Avanza á seguinte páxina
1WebView.goForward() async;
Imprime o documento da xanela actual
1WebView.print(Integer mode = 1) async;
Parámetros de chamada:
- mode: Enteiro, parámetro de impresión, 0: impresión rápida; 1: impresión estándar; 2: previsualización de impresión. O valor predeterminado é 1
printToPDF
Imprime o documento da xanela actual nun ficheiro PDF
1WebView.printToPDF(String file) async;
Parámetros de chamada:
- file: Cadea, especifica a ruta pdf
executeJavaScript
Executa un anaco de código JavaScript na xanela actual
1WebView.executeJavaScript(String code) async;
Parámetros de chamada:
- code: Cadea, especifique o código JavaScript que se executará
executeDevToolsMethod
Executa o comando DevTools na xanela actual e devolve o resultado
1
2Variant WebView.executeDevToolsMethod(String method,
Object params = {}) async;
Parámetros de chamada:
- method: Cadea, especifique o comando DevTools que se executará
- params: Obxecto, especifica os parámetros do comando
Resultado de volta:
- Variant, Devolve o resultado da execución
close
Pecha a xanela actual
1WebView.close() async;
postMessage
Envía unha mensaxe á vista web
1WebView.postMessage(String msg) async;
Parámetros de chamada:
msg: Cadea, a mensaxe a enviar
postMessage necesita enviar unha mensaxe despois de cargar a xanela, perdéndose as mensaxes enviadas antes diso. Polo tanto, recoméndase chamar a este método despois de desencadear o evento de carga.
on
Vincula un controlador de eventos ao obxecto
1
2Object WebView.on(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Vincula un controlador de eventos ao obxecto
1Object WebView.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto usarase como nome do evento e o valor da propiedade usarase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
addListener
Vincula un controlador de eventos ao obxecto
1
2Object WebView.addListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Vincula un controlador de eventos ao obxecto
1Object WebView.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto usarase como nome do evento e o valor da propiedade usarase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
prependListener
Vincula un controlador de eventos ao comezo do obxecto
1
2Object WebView.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Vincula un controlador de eventos ao comezo do obxecto
1Object WebView.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto usarase como nome do evento e o valor da propiedade usarase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
once
Vincula unha función de procesamento de eventos dunha soa vez ao obxecto, a función de procesamento única só se activará unha vez
1
2Object WebView.once(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Vincula unha función de procesamento de eventos dunha soa vez ao obxecto, a función de procesamento única só se activará unha vez
1Object WebView.once(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto usarase como nome do evento e o valor da propiedade usarase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
prependOnceListener
Vincula un controlador de eventos ao comezo do obxecto
1
2Object WebView.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Vincula un controlador de eventos ao comezo do obxecto
1Object WebView.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto usarase como nome do evento e o valor da propiedade usarase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
off
Cancelar a función especificada desde a cola de procesamento de obxectos
1
2Object WebView.off(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Cancelar todas as funcións da cola de procesamento de obxectos
1Object WebView.off(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Cancelar a función especificada desde a cola de procesamento de obxectos
1Object WebView.off(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto úsase como nome de evento e o valor da propiedade úsase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
removeListener
Cancelar a función especificada desde a cola de procesamento de obxectos
1
2Object WebView.removeListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifica a función de procesamento de eventos
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Cancelar todas as funcións da cola de procesamento de obxectos
1Object WebView.removeListener(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Cancelar a función especificada desde a cola de procesamento de obxectos
1Object WebView.removeListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifique a relación de asignación de eventos, o nome da propiedade do obxecto úsase como nome de evento e o valor da propiedade úsase como función de procesamento de eventos.
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
removeAllListeners
Cancelar todos os oíntes de todos os eventos da cola de procesamento de obxectos. Se se especifica un evento, elimine todos os oíntes do evento especificado.
1Object WebView.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
Cancelar todos os oíntes de todos os eventos da cola de procesamento de obxectos. Se se especifica un evento, elimine todos os oíntes do evento especificado.
1Object WebView.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, especifica o nome do evento
Resultado de volta:
- Object, Devolve o obxecto de evento en si, o que é conveniente para a chamada en cadea
setMaxListeners
O límite predeterminado do número de oíntes, só para compatibilidade
1WebView.setMaxListeners(Integer n);
Parámetros de chamada:
- n: Enteiro, especifique o número de eventos
getMaxListeners
Obtén o límite predeterminado do número de oíntes, só por compatibilidade
1Integer WebView.getMaxListeners();
Resultado de volta:
- Integer, Volver ao número límite predeterminado
listeners
Matriz de oíntes para o evento especificado do obxecto de consulta
1Array WebView.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Array, Devolve unha matriz de oíntes para o evento especificado
listenerCount
O número de oíntes para o evento especificado do obxecto de consulta
1Integer WebView.listenerCount(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Integer, Devolve o número de oíntes para o evento especificado
O número de oíntes para o evento especificado do obxecto de consulta
1
2Integer WebView.listenerCount(Value o,
String ev);
Parámetros de chamada:
- o: Valor, especifica o obxecto da consulta
- ev: Cadea, especifica o nome do evento
Resultado de volta:
- Integer, Devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array WebView.eventNames();
Resultado de volta:
- Array, Devolve unha matriz de nomes de eventos
emit
Desencadea un evento activamente
1
2Boolean WebView.emit(String ev,
...args);
Parámetros de chamada:
- ev: Cadea, nome do evento
- args: ..., parámetros do evento, que se pasarán ao controlador de eventos
Resultado de volta:
- Boolean, Volver ao estado de activación do evento, devolver verdadeiro se hai un evento de resposta, en caso contrario devolver falso
toString
Devolve a representación de cadea do obxecto, xeralmente devolve "[Obxecto nativo]", o obxecto pode reimplementarse segundo as súas propias características
1String WebView.toString();
Resultado de volta:
- String, Devolve a representación de cadea do obxecto
toJSON
Devolve a representación en formato JSON do obxecto, xeralmente devolve unha colección de atributos lexibles definidos polo obxecto
1Value WebView.toJSON(String key = "");
Parámetros de chamada:
- key: Cadea, sen usar
Resultado de volta:
- Value, Devolve un valor que contén JSON serializable