ObjetoWebView
objeto de ventana del navegador
WebView es un componente de ventana integrado en el navegador. Actualmente solo es compatible con Windows y macOS (10.10+). Utiliza el kernel IE/Edge en Windows y WKWebView en macOS.
Dado que el programa JavaScript en WebView y fibjs no están en el mismo motor, si necesita comunicarse con el programa host, debe hacerlo a través de mensajes.
El objeto utilizado para la comunicación por WebView es externo. Externo admite un método postMessage y dos eventos onmessage y onclose.
Un código de ejemplo de comunicación simple es el siguiente:
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();
El contenido de index.html es el siguiente:
1
2
3
4
5
6
7
8<script>
external.onclose = function() {
}
external.onmessage = function(msg){
external.postMessage("send back: " + msg);
};
</script>
Antes de cerrar la ventana del usuario, se activará el evento external.onclose y external.onclose puede decidir si cerrarlo. Si external.onclose devuelve falso, la operación se cancela; de lo contrario, la ventana se cerrará.
El siguiente ejemplo esperará 5 segundos después de que el usuario haga clic en Cerrar antes de cerrar la ventana.
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>
En el código anterior, debido a que window.close también activará el evento onclose, se debe agregar una variable de cambio para identificar si este evento debe procesarse.
relación de herencia
propiedades estáticas
defaultMaxListeners
Entero, el número máximo global predeterminado de oyentes
1static Integer WebView.defaultMaxListeners;
propiedades de miembros
onopen
Evento de éxito de carga de funciones, consultas y enlaces, equivalente a on("open", func);
1Function WebView.onopen;
onload
Función, consulta y vinculación de eventos de carga exitosa, equivalente a on("load", func);
1Function WebView.onload;
onaddress
Función, consulta y vinculación de eventos de cambio de dirección de página, equivalente a on("address", func);
1Function WebView.onaddress;
ontitle
Función, consulta y vinculación de eventos de cambio de título de página, equivalente a on("title", func);
1Function WebView.ontitle;
onmove
Función, consulta y vinculación de eventos de movimiento de ventana, equivalente a on("move", func);
1Function WebView.onmove;
El siguiente ejemplo genera las coordenadas de la esquina superior izquierda de la ventana a medida que se mueve:
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 y vincula eventos de cambio de tamaño de ventana, equivalente a on("size", func);
1Function WebView.onresize;
El siguiente ejemplo genera las dimensiones de una ventana cuando se cambia su tamaño:
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Funcione, consulte y vincule el evento de cierre de la ventana. Este tiempo se activará después de que se cierre WebView, lo que equivale a on("closed", func);
1Function WebView.onclosed;
onmessage
La función, la consulta y el enlace aceptan eventos de mensajes postMessage en webview, equivalente a on("message", func);
1Function WebView.onmessage;
ondownload
La función, la consulta y el enlace aceptan eventos de cambio de estado de transacción de descarga en webview, equivalente a on("descargar", func);
1Function WebView.ondownload;
función miembro
loadUrl
carga especificadaurlla página
1WebView.loadUrl(String url) async;
Parámetros de llamada:
- url: Cadena, especificadaurl
getUrl
Consultar la página actualurl
1String WebView.getUrl() async;
Resultados de devolución:
- String, devuelve la página actualurl
setHtml
Establecer la página html de webview
1WebView.setHtml(String html) async;
Parámetros de llamada:
- html: Cadena, establecer html
reload
Actualizar la página actual
1WebView.reload() async;
goBack
volver a la pagina anterior
1WebView.goBack() async;
goForward
Ir a la página siguiente
1WebView.goForward() async;
Imprimir el documento de la ventana actual
1WebView.print(Integer mode = 1) async;
Parámetros de llamada:
- mode: Entero, parámetros de impresión, 0: impresión rápida; 1: impresión estándar; 2: vista previa de impresión. El valor predeterminado es 1
executeJavaScript
Ejecute un fragmento de código JavaScript en la ventana actual
1WebView.executeJavaScript(String code) async;
Parámetros de llamada:
- code: Cadena, especifica el código JavaScript que se ejecutará
close
Cerrar la ventana actual
1WebView.close() async;
postMessage
Enviar mensaje a vista web
1WebView.postMessage(String msg) async;
Parámetros de llamada:
msg: Cadena, el mensaje a enviar
postMessage necesita enviar el mensaje después de cargar la ventana y los mensajes enviados antes se perderán. Por lo tanto, se recomienda llamar a este método después de que se active el evento de carga.
on
Vincular un controlador de eventos al objeto
1
2Object WebView.on(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object WebView.on(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
addListener
Vincular un controlador de eventos al objeto
1
2Object WebView.addListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al objeto
1Object WebView.addListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependListener
Vincular un controlador de eventos al origen del objeto
1
2Object WebView.prependListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object WebView.prependListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
once
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1
2Object WebView.once(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincula un controlador de eventos de una sola vez al objeto. El controlador de eventos de una sola vez solo se activará una vez.
1Object WebView.once(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
prependOnceListener
Vincular un controlador de eventos al origen del objeto
1
2Object WebView.prependOnceListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Vincular un controlador de eventos al origen del objeto
1Object WebView.prependOnceListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usará como nombre del evento y el valor del atributo se usará como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
off
Desasignar una función de la cola de procesamiento de objetos
1
2Object WebView.off(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object WebView.off(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object WebView.off(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeListener
Desasignar una función de la cola de procesamiento de objetos
1
2Object WebView.removeListener(String ev,
Function func);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
- func: Función, especifique la función de procesamiento de eventos
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancelar todas las funciones en la cola de procesamiento de objetos
1Object WebView.removeListener(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Desasignar una función de la cola de procesamiento de objetos
1Object WebView.removeListener(Object map);
Parámetros de llamada:
- map: Objeto, especifica la relación de mapeo de eventos, el nombre del atributo del objeto se usa como nombre del evento y el valor del atributo se usa como función de procesamiento de eventos.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
removeAllListeners
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object WebView.removeAllListeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
Cancela todos los oyentes de todos los eventos de la cola de procesamiento del objeto. Si se especifica un evento, elimina todos los oyentes del evento especificado.
1Object WebView.removeAllListeners(Array evs = []);
Parámetros de llamada:
- evs: Matriz, especifique el nombre del evento
Resultados de devolución:
- Object, devuelve el objeto de evento en sí para facilitar las llamadas en cadena
setMaxListeners
El límite predeterminado en la cantidad de oyentes, solo por compatibilidad
1WebView.setMaxListeners(Integer n);
Parámetros de llamada:
- n: Entero, especifica el número de eventos
getMaxListeners
Obtiene el número límite predeterminado de oyentes, solo por compatibilidad
1Integer WebView.getMaxListeners();
Resultados de devolución:
- Integer, devuelve la cantidad límite predeterminada
listeners
Consultar la matriz de escucha para el evento especificado del objeto.
1Array WebView.listeners(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Array, devuelve la matriz de escucha para el evento especificado
listenerCount
Consultar el número de oyentes para el evento especificado del objeto.
1Integer WebView.listenerCount(String ev);
Parámetros de llamada:
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
Consultar el número de oyentes para el evento especificado del objeto.
1
2Integer WebView.listenerCount(Value o,
String ev);
Parámetros de llamada:
- o: Valor, especifica el objeto de la consulta.
- ev: Cadena, especifica el nombre del evento.
Resultados de devolución:
- Integer, devuelve el número de oyentes para el evento especificado
eventNames
Nombre del evento del oyente de consultas
1Array WebView.eventNames();
Resultados de devolución:
- Array, devuelve una serie de nombres de eventos
emit
Activar activamente un evento
1
2Boolean WebView.emit(String ev,
...args);
Parámetros de llamada:
- ev: Cadena, nombre del evento
- args: ..., los parámetros del evento se pasarán a la función de procesamiento de eventos
Resultados de devolución:
- Boolean, devuelve el estado del activador del evento, devuelve verdadero si hay un evento de respuesta; de lo contrario, devuelve falso
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String WebView.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value WebView.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable