Objet objet intégré

Objet WebView

Objet fenêtre du navigateur

WebView est un composant de fenêtre intégré au navigateur, ne prend actuellement en charge que Windows, macOS (10.10+).Utilisez le noyau IE/Edge dans Windows, utilisez WKWebView dans macOS.

Étant donné que le programme JavaScript dans WebView et fibjs ne sont pas dans le même moteur, si vous devez communiquer avec le programme hôte, vous devez utiliser des messages.

L'objet utilisé par WebView pour la communication est externe, qui prend en charge une méthode postMessage et deux événements onmessage et onclose.

Un exemple de code de communication simple est le suivant :

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();

Le contenu de index.html est le suivant :

1 2 3 4 5 6 7 8
<script> external.onclose = function() { } external.onmessage = function(msg){ external.postMessage("send back: " + msg); }; </script>

Avant la fermeture de la fenêtre utilisateur, l'événement external.onclose sera déclenché et external.onclose peut décider de fermer. Si external.onclose renvoie false, l'opération est annulée, sinon la fenêtre sera fermée.

L'exemple suivant attendra 5 secondes après que l'utilisateur ait cliqué pour fermer, puis fermer la fenêtre.

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>

Dans le code ci-dessus, étant donné que window.close déclenche également l'événement onclose, une variable switch doit être ajoutée pour identifier si l'événement doit être traité.

Héritage

#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()

Propriétés statiques

defaultMaxListeners

Entier, le nombre maximal global par défaut d'auditeurs

1
static Integer WebView.defaultMaxListeners;

Attributs des membres

type

String, le moteur WebView de la fenêtre actuelle

1
readonly String WebView.type;

dev

Valeur, objet d'accès DevTools, reportez-vous à l'interface d'appel : https://chromedevtools.github.io/devtools-protocol/

1
readonly Value WebView.dev;

onopen

Événement de succès du chargement de la fonction, de la requête et de la liaison, équivalent à on("open", func);

1
Function WebView.onopen;

onload

Événement de succès du chargement de la fonction, de la requête et de la liaison, équivalent à on("load", func);

1
Function WebView.onload;

onaddress

Fonction, requête et liaison de l'événement de changement d'adresse de page, équivalent à on("adresse", func);

1
Function WebView.onaddress;

ontitle

Fonction, requête et liaison de l'événement de changement de titre de page, équivalent à on("title", func);

1
Function WebView.ontitle;

onmove

Événements de mouvement de fenêtre de fonction, de requête et de liaison, équivalents à on("move", func);

1
Function WebView.onmove;

L'exemple suivant affichera les coordonnées du coin supérieur gauche de la fenêtre lorsque la fenêtre est déplacée :

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

Événement de changement de taille de la fonction, de la requête et de la fenêtre de liaison, équivalent à on("size", func);

1
Function WebView.onresize;

L'exemple suivant affichera la taille de la fenêtre lorsque la fenêtre est redimensionnée :

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

Événement de fermeture de fenêtre de fonction, de requête et de liaison, cette fois sera déclenché après la fermeture de WebView, ce qui équivaut à on("closed", func);

1
Function WebView.onclosed;

onmessage

Fonction, requête et liaison pour accepter l'événement postMessage dans la vue Web, équivalent à on("message", func);

1
Function WebView.onmessage;

Fonction membre

loadUrl

Charge spécifiée url Page de

1
WebView.loadUrl(String url) async;

Paramètres d'appel :

  • url: chaîne, spécifiée url

getUrl

Interroger la page actuelle url

1
String WebView.getUrl() async;

Résultat de retour :

  • String, Retour à la page courante url

setHtml

Définir la page html de la vue Web

1
WebView.setHtml(String html) async;

Paramètres d'appel :

  • html: chaîne, définir html

reload

Actualiser la page actuelle

1
WebView.reload() async;

goBack

Retournez à la page précédente

1
WebView.goBack() async;

goForward

Passer à la page suivante

1
WebView.goForward() async;

print

Imprimer le document de la fenêtre en cours

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

Paramètres d'appel :

  • mode: Entier, paramètre d'impression, 0 : impression rapide ; 1 : impression standard ; 2 : aperçu avant impression. La valeur par défaut est 1

printToPDF

Imprimer le document de la fenêtre actuelle dans un fichier PDF

1
WebView.printToPDF(String file) async;

Paramètres d'appel :

  • file: String, spécifiez le chemin du pdf

executeJavaScript

Exécuter un morceau de code JavaScript dans la fenêtre actuelle

1
WebView.executeJavaScript(String code) async;

Paramètres d'appel :

  • code: String, spécifiez le code JavaScript à exécuter

executeDevToolsMethod

Exécutez la commande DevTools dans la fenêtre actuelle et retournez le résultat

1 2
Variant WebView.executeDevToolsMethod(String method, Object params = {}) async;

Paramètres d'appel :

  • method: String, spécifiez la commande DevTools à exécuter
  • params: Objet, spécifiez les paramètres de la commande

Résultat de retour :

  • Variant, Renvoie le résultat de l'exécution

close

Fermer la fenêtre actuelle

1
WebView.close() async;

postMessage

Envoyer un message à la vue Web

1
WebView.postMessage(String msg) async;

Paramètres d'appel :

  • msg : chaîne, le message à envoyer

    postMessage doit envoyer un message après le chargement de la fenêtre, les messages envoyés avant seront perdus. Par conséquent, il est recommandé d'appeler cette méthode après le déclenchement de l'événement onload.


on

Lier un gestionnaire d'événements à l'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Lier un gestionnaire d'événements à l'objet

1
Object WebView.on(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet sera utilisé comme nom d'événement et la valeur de propriété sera utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

addListener

Lier un gestionnaire d'événements à l'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Lier un gestionnaire d'événements à l'objet

1
Object WebView.addListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet sera utilisé comme nom d'événement et la valeur de propriété sera utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

prependListener

Lier un gestionnaire d'événement au début de l'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Lier un gestionnaire d'événement au début de l'objet

1
Object WebView.prependListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet sera utilisé comme nom d'événement et la valeur de propriété sera utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

once

Liez une fonction de traitement d'événement unique à l'objet, la fonction de traitement unique ne sera déclenchée qu'une seule fois

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Liez une fonction de traitement d'événement unique à l'objet, la fonction de traitement unique ne sera déclenchée qu'une seule fois

1
Object WebView.once(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet sera utilisé comme nom d'événement et la valeur de propriété sera utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

prependOnceListener

Lier un gestionnaire d'événement au début de l'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Lier un gestionnaire d'événement au début de l'objet

1
Object WebView.prependOnceListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet sera utilisé comme nom d'événement et la valeur de propriété sera utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

off

Annuler la fonction spécifiée de la file d'attente de traitement d'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Annuler toutes les fonctions dans la file d'attente de traitement des objets

1
Object WebView.off(String ev);

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Annuler la fonction spécifiée de la file d'attente de traitement d'objet

1
Object WebView.off(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet est utilisé comme nom d'événement et la valeur de propriété est utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

removeListener

Annuler la fonction spécifiée de la file d'attente de traitement d'objet

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

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement
  • func: fonction, spécifiez la fonction de traitement des événements

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Annuler toutes les fonctions dans la file d'attente de traitement des objets

1
Object WebView.removeListener(String ev);

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Annuler la fonction spécifiée de la file d'attente de traitement d'objet

1
Object WebView.removeListener(Object map);

Paramètres d'appel :

  • map: Objet, spécifiez la relation de mappage d'événement, le nom de propriété de l'objet est utilisé comme nom d'événement et la valeur de propriété est utilisée comme fonction de traitement d'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

removeAllListeners

Annule tous les écouteurs de tous les événements de la file d'attente de traitement des objets. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.

1
Object WebView.removeAllListeners(String ev);

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

Annule tous les écouteurs de tous les événements de la file d'attente de traitement des objets. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.

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

Paramètres d'appel :

  • evs: Array, spécifiez le nom de l'événement

Résultat de retour :

  • Object, Renvoie l'objet événement lui-même, ce qui est pratique pour l'appel en chaîne

setMaxListeners

La limite par défaut du nombre d'auditeurs, uniquement pour la compatibilité

1
WebView.setMaxListeners(Integer n);

Paramètres d'appel :

  • n: Entier, spécifiez le nombre d'événements

getMaxListeners

Obtenez la limite par défaut du nombre d'auditeurs, uniquement pour la compatibilité

1
Integer WebView.getMaxListeners();

Résultat de retour :

  • Integer, Retour au nombre limite par défaut

listeners

Tableau d'écouteurs pour l'événement spécifié de l'objet de requête

1
Array WebView.listeners(String ev);

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement

Résultat de retour :

  • Array, Renvoie un tableau d'écouteurs pour l'événement spécifié

listenerCount

Le nombre d'écouteurs pour l'événement spécifié de l'objet de requête

1
Integer WebView.listenerCount(String ev);

Paramètres d'appel :

  • ev: String, spécifiez le nom de l'événement

Résultat de retour :

  • Integer, Renvoie le nombre d'écouteurs pour l'événement spécifié

eventNames

Interroger le nom d'événement de l'écouteur

1
Array WebView.eventNames();

Résultat de retour :

  • Array, Renvoie un tableau de noms d'événements

emit

Déclencher un événement activement

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

Paramètres d'appel :

  • ev: chaîne, nom de l'événement
  • args: ..., paramètres d'événement, qui seront passés au gestionnaire d'événement

Résultat de retour :

  • Boolean, Retourne à l'état du déclencheur d'événement, retourne vrai s'il y a un événement de réponse, sinon retourne faux

toString

Renvoie la représentation sous forme de chaîne de l'objet, renvoie généralement "[Objet natif]", l'objet peut être ré-implémenté selon ses propres caractéristiques

1
String WebView.toString();

Résultat de retour :

  • String, Renvoie la représentation sous forme de chaîne de l'objet

toJSON

Renvoie la représentation au format JSON de l'objet, renvoie généralement une collection d'attributs lisibles définis par l'objet

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

Paramètres d'appel :

  • key: chaîne, inutilisé

Résultat de retour :

  • Value, Renvoie une valeur contenant JSON sérialisable