Objeto incorporado

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

1
static Integer WebView.defaultMaxListeners;

propiedades de miembros

onopen

Evento de éxito de carga de funciones, consultas y enlaces, equivalente a on("open", func);

1
Function WebView.onopen;

onload

Función, consulta y vinculación de eventos de carga exitosa, equivalente a on("load", func);

1
Function WebView.onload;

onaddress

Función, consulta y vinculación de eventos de cambio de dirección de página, equivalente a on("address", func);

1
Function WebView.onaddress;

ontitle

Función, consulta y vinculación de eventos de cambio de título de página, equivalente a on("title", func);

1
Function WebView.ontitle;

onmove

Función, consulta y vinculación de eventos de movimiento de ventana, equivalente a on("move", func);

1
Function WebView.onmove;

El siguiente ejemplo genera las coordenadas de la esquina superior izquierda de la ventana a medida que se mueve:

1 2 3 4
var 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);

1
Function WebView.onresize;

El siguiente ejemplo genera las dimensiones de una ventana cuando se cambia su tamaño:

1 2 3 4
var 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);

1
Function WebView.onclosed;

onmessage

La función, la consulta y el enlace aceptan eventos de mensajes postMessage en webview, equivalente a on("message", func);

1
Function 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);

1
Function WebView.ondownload;

función miembro

loadUrl

carga especificadaurlla página

1
WebView.loadUrl(String url) async;

Parámetros de llamada:

  • url: Cadena, especificadaurl

getUrl

Consultar la página actualurl

1
String WebView.getUrl() async;

Resultados de devolución:

  • String, devuelve la página actualurl

setHtml

Establecer la página html de webview

1
WebView.setHtml(String html) async;

Parámetros de llamada:

  • html: Cadena, establecer html

reload

Actualizar la página actual

1
WebView.reload() async;

goBack

volver a la pagina anterior

1
WebView.goBack() async;

goForward

Ir a la página siguiente

1
WebView.goForward() async;

print

Imprimir el documento de la ventana actual

1
WebView.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

1
WebView.executeJavaScript(String code) async;

Parámetros de llamada:

  • code: Cadena, especifica el código JavaScript que se ejecutará

close

Cerrar la ventana actual

1
WebView.close() async;

postMessage

Enviar mensaje a vista web

1
WebView.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 2
Object 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

1
Object 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 2
Object 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

1
Object 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 2
Object 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

1
Object 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 2
Object 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.

1
Object 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 2
Object 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

1
Object 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 2
Object 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

1
Object 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

1
Object 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 2
Object 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

1
Object 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

1
Object 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.

1
Object 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.

1
Object 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

1
WebView.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

1
Integer 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.

1
Array 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.

1
Integer 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 2
Integer 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

1
Array WebView.eventNames();

Resultados de devolución:

  • Array, devuelve una serie de nombres de eventos

emit

Activar activamente un evento

1 2
Boolean 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.

1
String 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.

1
Value WebView.toJSON(String key = "");

Parámetros de llamada:

  • key: Cadena, no utilizada

Resultados de devolución:

  • Value, devuelve un valor que contiene JSON serializable