Obxecto incorporado

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 para pechar e logo 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, porque window.close tamén desencadea o evento onclose, cómpre engadir unha variable de cambio para identificar se o evento debe procesarse.

Herdanza

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>EventEmitter|new EventEmitter()|EventEmitter|defaultMaxListeners|on();addListener();prependListener();once();prependOnceListener();off();removeListener();removeAllListeners();setMaxListeners();getMaxListeners();listeners();listenerCount();eventNames();emit()] [<this>WebView|type;dev;onopen;onload;onaddress;ontitle;onmove;onresize;onclosed;onmessage|loadUrl();getUrl();setHtml();reload();goBack();goForward();print();printToPDF();executeJavaScript();executeDevToolsMethod();close();postMessage()] [object] <:- [EventEmitter] [EventEmitter] <:- [WebView] EventEmitter new EventEmitter() EventEmitter defaultMaxListeners on() addListener() prependListener() once() prependOnceListener() off() removeListener() removeAllListeners() setMaxListeners() getMaxListeners() listeners() listenerCount() eventNames() emit() WebView type dev onopen onload onaddress ontitle onmove onresize onclosed onmessage loadUrl() getUrl() setHtml() reload() goBack() goForward() print() printToPDF() executeJavaScript() executeDevToolsMethod() close() postMessage() object toString() toJSON()

Propiedades estáticas

defaultMaxListeners

Entero, o número máximo predeterminado global de oíntes

1
static Integer WebView.defaultMaxListeners;

Atributos dos membros

type

String, o motor WebView da xanela actual

1
readonly String WebView.type;

dev

Valor, obxecto de acceso a DevTools, consulte a interface de chamada: https://chromedevtools.github.io/devtools-protocol/

1
readonly Value WebView.dev;

onopen

Función, consulta e evento de éxito de carga de enlace, equivalente a activado ("aberto", func);

1
Function WebView.onopen;

onload

Función, consulta e evento de éxito de carga de bind, equivalente a on ("load", func);

1
Function WebView.onload;

onaddress

Funciona, consulta e enlaza o evento de cambio de enderezo da páxina, equivalente a on ("enderezo", func);

1
Function WebView.onaddress;

ontitle

Funciona, consulta e enlaza o evento de cambio de título da páxina, equivalente a on ("título", func);

1
Function WebView.ontitle;

onmove

Función, consulta e acontecementos de movemento de xanelas, equivalentes a on ("mover", func);

1
Function WebView.onmove;

O seguinte exemplo mostrará as coordenadas da esquina superior esquerda da xanela cando se move a xanela:

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

Evento de cambio de tamaño de xanela de función, consulta e vinculación, equivalente a activado ("tamaño", func);

1
Function WebView.onresize;

O seguinte exemplo mostrará o tamaño da xanela cando se redimensiona a xanela:

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

Función, consulta e evento de peche da xanela de enlace, esta vez activarase despois de que WebView estea pechado, o que equivale a on ("pechado", func);

1
Function WebView.onclosed;

onmessage

Función, consulta e vinculación para aceptar o evento postMessage en webview, equivalente a on ("mensaxe", func);

1
Function WebView.onmessage;

Función de membro

loadUrl

Carga especificada url Páxina de

1
WebView.loadUrl(String url) async;

Parámetros de chamada:

  • url: Cadea, especificada url

getUrl

Consulte a páxina actual url

1
String WebView.getUrl() async;

Resultado de volta:

  • String, Volver á páxina actual url

setHtml

Configure o html da páxina webview

1
WebView.setHtml(String html) async;

Parámetros de chamada:

  • html: Cadea, define html

reload

Actualiza a páxina actual

1
WebView.reload() async;

goBack

Volver á páxina anterior

1
WebView.goBack() async;

goForward

Avanza á seguinte páxina

1
WebView.goForward() async;

print

Imprime o documento da xanela actual

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

1
WebView.printToPDF(String file) async;

Parámetros de chamada:

  • file: Cadea, especifique a ruta pdf

executeJavaScript

Executa un anaco de código JavaScript na xanela actual

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

1
WebView.close() async;

postMessage

Envía unha mensaxe á vista web

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

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

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

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

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

1
Object 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 da cola de procesamento de obxectos

1 2
Object 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 na cola de procesamento de obxectos

1
Object 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 da cola de procesamento de obxectos

1
Object 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 da cola de procesamento de obxectos

1 2
Object 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 na cola de procesamento de obxectos

1
Object 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 da cola de procesamento de obxectos

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

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

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

Parámetros de chamada:

  • evs: Array, especifique 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ó por compatibilidade

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

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

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

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

eventNames

Consulta o nome do evento do oínte

1
Array WebView.eventNames();

Resultado de volta:

  • Array, Devolve unha matriz de nomes de eventos

emit

Desencadea un evento activamente

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

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

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

Parámetros de chamada:

  • key: Cadea, sen usar

Resultado de volta:

  • Value, Devolve un valor que contén JSON serializable