ObjectWebView
obxecto da xanela do navegador
WebView é un compoñente de fiestras integrado no navegador. Actualmente só admite Windows e macOS (10.10+). Utiliza o núcleo IE/Edge en Windows e WKWebView en macOS.
Dado que o programa JavaScript en WebView e fibjs non están no mesmo motor, se precisa comunicarse co programa host, cómpre facelo a través de mensaxes.
O obxecto utilizado para a comunicación por WebView é externo. External admite un método postMessage e dous eventos onmessage e onclose.
Un exemplo de código de comunicación sinxelo é 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 que se peche a xanela do usuario, desencadearase o evento external.onclose e external.onclose pode decidir se o 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 antes de pechar 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, dado que o propio window.close tamén activará o evento onclose, hai que engadir unha variable de cambio para identificar se este evento debe ser procesado.
relación de herdanza
propiedades estáticas
defaultMaxListeners
Enteiro, o número máximo global predeterminado de oíntes
1static Integer WebView.defaultMaxListeners;
propiedades dos membros
onopen
Evento de éxito de carga de función, consulta e vinculación, equivalente a on("open", func);
1Function WebView.onopen;
onload
Eventos exitosos de carga de función, consulta e vinculación, equivalente a on("load", func);
1Function WebView.onload;
onaddress
Eventos de cambio de función, consulta e enlace de enderezos de páxina, equivalente a on("enderezo", func);
1Function WebView.onaddress;
ontitle
Eventos de cambio de función, consulta e vinculación do título da páxina, equivalente a on("título", func);
1Function WebView.ontitle;
onmove
Función, consulta e vinculación de eventos de movemento da xanela, equivalente a on("move", func);
1Function WebView.onmove;
O seguinte exemplo mostra as coordenadas da esquina superior esquerda da xanela mentres se move:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Función, consulta e vinculación de eventos de cambio de tamaño da xanela, equivalente a on("tamaño", func);
1Function WebView.onresize;
O seguinte exemplo mostra as dimensións dunha xanela cando se redimensiona:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Funciona, consulta e vincula o evento de peche da xanela. Este tempo activarase despois de que se peche WebView, o que equivale a on("closed", func);
1Function WebView.onclosed;
onmessage
Función, consulta e vinculación aceptan eventos de mensaxes postMessage na vista web, equivalente a on("mensaxe", func);
1Function WebView.onmessage;
ondownload
Función, consulta e vinculación aceptar eventos de cambio de estado da transacción de descarga na vista web, equivalente a on("descargar", func);
1Function WebView.ondownload;
función de membro
loadUrl
carga especificadaurla páxina
1WebView.loadUrl(String url) async;
Parámetros de chamada:
- url: Cadena, especificadaurl
getUrl
Consulta a páxina actualurl
1String WebView.getUrl() async;
Resultados de devolución:
- String, devolve a páxina actualurl
setHtml
Establece o html da páxina da vista web
1WebView.setHtml(String html) async;
Parámetros de chamada:
- html: String, establece html
reload
Actualizar a páxina actual
1WebView.reload() async;
goBack
Volver á páxina anterior
1WebView.goBack() async;
goForward
Ir á páxina seguinte
1WebView.goForward() async;
Imprima o documento da fiestra actual
1WebView.print(Integer mode = 1) async;
Parámetros de chamada:
- mode: Número enteiro, parámetros de impresión, 0: impresión rápida; 1: impresión estándar; 2: vista previa de impresión. O valor predeterminado é 1
executeJavaScript
Executar un anaco de código JavaScript na xanela actual
1WebView.executeJavaScript(String code) async;
Parámetros de chamada:
- code: String, especifica o código JavaScript que se vai executar
close
Pechar a xanela actual
1WebView.close() async;
postMessage
Enviar mensaxe a webview
1WebView.postMessage(String msg) async;
Parámetros de chamada:
msg: String, a mensaxe que se vai enviar
postMessage debe enviar a mensaxe despois de cargar a xanela e perderanse as mensaxes enviadas antes. Polo tanto, recoméndase chamar a este método despois de que se desencadee o evento onload.
on
Vincular 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, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object WebView.on(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
addListener
Vincular 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, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos ao obxecto
1Object WebView.addListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object WebView.prependListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object WebView.prependListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
once
Vincula un controlador de eventos único ao obxecto. O manejador único 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, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincula un controlador de eventos único ao obxecto. O manejador único só se activará unha vez.
1Object WebView.once(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
prependOnceListener
Vincular un controlador de eventos á orixe do obxecto
1
2Object WebView.prependOnceListener(String ev,
Function func);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
- func: Función, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Vincular un controlador de eventos á orixe do obxecto
1Object WebView.prependOnceListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto empregarase como nome do evento e o valor do atributo como función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
off
Desasignar unha función da 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, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela 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
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object WebView.off(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeListener
Desasignar unha función da 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, especifique a función de procesamento de eventos
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela 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
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Desasignar unha función da cola de procesamento de obxectos
1Object WebView.removeListener(Object map);
Parámetros de chamada:
- map: Obxecto, especifica a relación de asignación de eventos, o nome do atributo do obxecto úsase como nome do evento e o valor do atributo úsase como función de procesamento de eventos.
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
removeAllListeners
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object WebView.removeAllListeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
Cancela todos os oíntes de todos os eventos da cola de procesamento do obxecto. Se se especifica un evento, elimina todos os oíntes do evento especificado.
1Object WebView.removeAllListeners(Array evs = []);
Parámetros de chamada:
- evs: Matriz, especifique o nome do evento
Resultados de devolución:
- Object, devolve o propio obxecto do evento para facilitar as chamadas en cadea
setMaxListeners
O límite predeterminado no número de oíntes, só para compatibilidade
1WebView.setMaxListeners(Integer n);
Parámetros de chamada:
- n: Número enteiro, especifique o número de eventos
getMaxListeners
Obtén o número límite predeterminado de oíntes, só para compatibilidade
1Integer WebView.getMaxListeners();
Resultados de devolución:
- Integer, devolve a cantidade límite predeterminada
listeners
Consulta a matriz de escoita para o evento especificado do obxecto
1Array WebView.listeners(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Array, devolve a matriz de escoita para o evento especificado
listenerCount
Consulta o número de oíntes para o evento especificado do obxecto
1Integer WebView.listenerCount(String ev);
Parámetros de chamada:
- ev: Cadea, especifica o nome do evento
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
Consulta o número de oíntes para o evento especificado do obxecto
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
Resultados de devolución:
- Integer, devolve o número de oíntes para o evento especificado
eventNames
Consulta o nome do evento do oínte
1Array WebView.eventNames();
Resultados de devolución:
- Array, devolve unha matriz de nomes de eventos
emit
Activa un evento de forma activa
1
2Boolean WebView.emit(String ev,
...args);
Parámetros de chamada:
- ev: Cadea, nome do evento
- args: ..., os parámetros do evento pasaranse á función de procesamento de eventos
Resultados de devolución:
- Boolean, devolve o estado de activación do evento, devolve verdadeiro se hai un evento de resposta, se non, devolve falso
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String WebView.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value WebView.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable