Objeto objeto incorporado

WebView de objeto

Objeto de la ventana del navegador

WebView es un componente de ventana integrado en el navegador, actualmente solo es compatible con Windows, macOS (10.10+). Use el kernel IE / Edge en Windows, use 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 usar mensajes.

El objeto utilizado por WebView para la comunicación es externo, lo que 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 que se cierre la ventana del usuario, se desencadena el evento external.onclose y external.onclose puede decidir si se cierra. 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 y luego cierre 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 activa el evento onclose, se debe agregar una variable de cambio para identificar si el evento necesita ser procesado.

Herencia

Propiedades estáticas

defaultMaxListeners

Entero, el número máximo global predeterminado de oyentes

1
static Integer WebView.defaultMaxListeners;

Atributos del miembro

visible

Booleano, consulta y establece si se muestra la ventana

1
Boolean WebView.visible;

onload

Evento de éxito de carga de función, consulta y enlace, equivalente a on ("load", func);

1
Function WebView.onload;

onmove

Eventos de movimiento de ventana de función, consulta y enlace, equivalente a on ("move", func);

1
Function WebView.onmove;

El siguiente ejemplo mostrará las coordenadas de la esquina superior izquierda de la ventana cuando se mueva la ventana:

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 evento de cambio de tamaño de ventana de enlace, equivalente a on ("size", func);

1
Function WebView.onresize;

El siguiente ejemplo generará el tamaño de la ventana cuando se cambie el tamaño de la ventana:

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

Evento de cierre de ventana de función, consulta y enlace, esta vez se activará después de que se cierre WebView, equivalente a on ("cerrado", func);

1
Function WebView.onclosed;

onmessage

Función, consulta y enlace para aceptar el evento postMessage en webview, equivalente a on ("message", func);

1
Function WebView.onmessage;

Función miembro

setHtml

Establecer la página html de webview

1
WebView.setHtml(String html) async;

Parámetros de llamada:

  • html : String, establecer html

print

Imprimir el documento de la ventana actual

1
WebView.print(Integer mode = 1) async;

Parámetros de llamada:

  • mode : entero, parámetro de impresión, 0: impresión rápida; 1: impresión estándar; 2: vista previa de impresión. El valor predeterminado es 1

close

Cerrar ventana actual

1
WebView.close() async;

postMessage

Enviar un mensaje a la vista web

1
WebView.postMessage(String msg) async;

Parámetros de llamada:

  • msg: String, el mensaje a enviar

    postMessage necesita enviar un mensaje después de cargar la ventana, 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 onload.


on

Vincula un controlador de eventos al objeto

1 2
Object WebView.on(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Vincula un controlador de eventos al objeto

1
Object WebView.on(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto será el nombre del evento y el valor de la propiedad será la función de procesamiento del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

addListener

Vincula un controlador de eventos al objeto

1 2
Object WebView.addListener(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Vincula un controlador de eventos al objeto

1
Object WebView.addListener(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto será el nombre del evento y el valor de la propiedad será la función de procesamiento del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

prependListener

Vincula un controlador de eventos al inicio del objeto

1 2
Object WebView.prependListener(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Vincula un controlador de eventos al inicio del objeto

1
Object WebView.prependListener(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto será el nombre del evento y el valor de la propiedad será la función de procesamiento del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

once

Vincula una función de procesamiento de eventos de una sola vez al objeto, la función de procesamiento de una sola vez solo se activará una vez

1 2
Object WebView.once(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Vincula una función de procesamiento de eventos de una sola vez al objeto, la función de procesamiento de una sola vez solo se activará una vez

1
Object WebView.once(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto será el nombre del evento y el valor de la propiedad será la función de procesamiento del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

prependOnceListener

Vincula un controlador de eventos al inicio del objeto

1 2
Object WebView.prependOnceListener(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Vincula un controlador de eventos al inicio del objeto

1
Object WebView.prependOnceListener(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto será el nombre del evento y el valor de la propiedad será la función de procesamiento del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

off

Cancelar la función especificada de la cola de procesamiento de objetos

1 2
Object WebView.off(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Cancelar todas las funciones en la cola de procesamiento de objetos

1
Object WebView.off(String ev);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Cancelar la función especificada de la cola de procesamiento de objetos

1
Object WebView.off(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto se usa como el nombre del evento y el valor de la propiedad se usa como la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

removeListener

Cancelar la función especificada de la cola de procesamiento de objetos

1 2
Object WebView.removeListener(String ev, Function func);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento
  • func : Function, especifica la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Cancelar todas las funciones en la cola de procesamiento de objetos

1
Object WebView.removeListener(String ev);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

Cancelar la función especificada de la cola de procesamiento de objetos

1
Object WebView.removeListener(Object map);

Parámetros de llamada:

  • map : Object, especifique la relación de mapeo de eventos, el nombre de la propiedad del objeto se usa como el nombre del evento y el valor de la propiedad se usa como la función de procesamiento de eventos

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

removeAllListeners

Cancele todos los oyentes de todos los eventos de la cola de procesamiento de objetos. Si se especifica un evento, elimine todos los oyentes del evento especificado.

1
Object WebView.removeAllListeners(Array evs = []);

Parámetros de llamada:

  • evs : matriz, especifique el nombre del evento

Resultado devuelto:

  • Object , devuelve el objeto del evento en sí mismo, fácil de encadenar

setMaxListeners

El límite predeterminado del número de oyentes, solo por compatibilidad

1
WebView.setMaxListeners(Integer n);

Parámetros de llamada:

  • n : entero, especifique el número de eventos

getMaxListeners

Obtenga el límite predeterminado de la cantidad de oyentes, solo por compatibilidad

1
Integer WebView.getMaxListeners();

Resultado devuelto:

  • Integer , devuelve el número límite predeterminado

listeners

Matriz de oyentes para el evento especificado del objeto de consulta

1
Array WebView.listeners(String ev);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento

Resultado devuelto:

  • Array , devuelve una matriz de oyentes para el evento especificado

listenerCount

El número de oyentes para el evento especificado del objeto de consulta

1
Integer WebView.listenerCount(String ev);

Parámetros de llamada:

  • ev : String, especifique el nombre del evento

Resultado devuelto:

  • Integer , devuelve el número de oyentes para el evento especificado

eventNames

Nombre del evento del oyente de consultas

1
Array WebView.eventNames();

Resultado devuelto:

  • Array , devuelve una matriz de nombres de eventos

emit

Activar activamente un evento

1 2
Boolean WebView.emit(String ev, ...args);

Parámetros de llamada:

  • ev : String, nombre del evento
  • args : ..., parámetros de evento, que se pasarán al controlador de eventos

Resultado devuelto:

  • Boolean , devuelve el estado desencadenante 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 devuelve "[Objeto nativo]", el objeto se puede volver a implementar según sus propias características

1
String WebView.toString();

Resultado devuelto:

  • String , devuelve la representación de cadena del objeto

toJSON

Devuelve la representación en formato JSON del objeto, generalmente devuelve una colección de atributos legibles definidos por el objeto

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

Parámetros de llamada:

  • key : cadena, sin usar

Resultado devuelto:

  • Value , devuelve un valor que contiene JSON serializable