ObjetWebView
objet de fenêtre de navigateur
WebView est un composant de fenêtre intégré au navigateur. Actuellement, il ne prend en charge que Windows et macOS (10.10+). Il utilise le noyau IE/Edge sous Windows et WKWebView sous 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 le faire via des messages.
L'objet utilisé pour la communication par WebView est externe. External 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 pourra décider de la 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é sur Fermer avant de 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 lui-même déclenchera également l'événement onclose, une variable switch doit être ajoutée pour identifier si cet événement doit être traité.
relation d'héritage
propriétés statiques
defaultMaxListeners
Entier, le nombre maximum global d'auditeurs par défaut
1static Integer WebView.defaultMaxListeners;
propriétés des membres
onopen
Événement de réussite du chargement de fonction, de requête et de liaison, équivalent à on("open", func);
1Function WebView.onopen;
onload
Événements de réussite de chargement de fonctions, de requêtes et de liaisons, équivalents à on("load", func);
1Function WebView.onload;
onaddress
Événements de changement d'adresse de page de fonction, de requête et de liaison, équivalents à on("address", func);
1Function WebView.onaddress;
ontitle
Événements de changement de titre de page de fonction, de requête et de liaison, équivalent à on("title", func);
1Function WebView.ontitle;
onmove
Fonctionner, interroger et lier les événements de mouvement de fenêtre, équivalent à on("move", func);
1Function WebView.onmove;
L'exemple suivant affiche les coordonnées du coin supérieur gauche de la fenêtre lors de son déplacement :
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onmove = evt => console.log(evt.left, evt.top);
onresize
Fonction, interroge et lie les événements de changement de taille de fenêtre, équivalent à on("size", func);
1Function WebView.onresize;
L'exemple suivant affiche les dimensions d'une fenêtre lorsqu'elle est redimensionnée :
1
2
3
4var gui = require('gui');
var webview = gui.open('fs://index.html');
webview.onresize = evt => console.log(evt.width, evt.height);
onclosed
Fonctionne, interroge et lie l'événement de fermeture de la fenêtre.Cette fois, elle sera déclenchée après la fermeture de WebView, ce qui équivaut à on("closed", func);
1Function WebView.onclosed;
onmessage
La fonction, la requête et la liaison acceptent les événements de message postMessage dans la vue Web, équivalent à on("message", func);
1Function WebView.onmessage;
ondownload
La fonction, la requête et la liaison acceptent les événements de changement d'état de la transaction de téléchargement dans la vue Web, équivalent à on("download", func);
1Function WebView.ondownload;
fonction membre
loadUrl
charge spécifiéeurlla page
1WebView.loadUrl(String url) async;
Paramètres d'appel :
- url: Chaîne, spécifiéeurl
getUrl
Interroger la page actuelleurl
1String WebView.getUrl() async;
Résultats de retour :
- String, renvoie la page actuelleurl
setHtml
Définir la page HTML de WebView
1WebView.setHtml(String html) async;
Paramètres d'appel :
- html: Chaîne, définissez le HTML
reload
Actualiser la page actuelle
1WebView.reload() async;
goBack
Retourner à la page précédente
1WebView.goBack() async;
goForward
Aller à la page suivante
1WebView.goForward() async;
Imprimer le document de la fenêtre actuelle
1WebView.print(Integer mode = 1) async;
Paramètres d'appel :
- mode: Entier, paramètres d'impression, 0 : impression rapide ; 1 : impression standard ; 2 : aperçu avant impression. La valeur par défaut est 1
executeJavaScript
Exécutez un morceau de code JavaScript dans la fenêtre actuelle
1WebView.executeJavaScript(String code) async;
Paramètres d'appel :
- code: String, spécifie le code JavaScript à exécuter
close
Fermer la fenêtre actuelle
1WebView.close() async;
postMessage
Envoyer un message à la vue Web
1WebView.postMessage(String msg) async;
Paramètres d'appel :
msg : String, le message à envoyer
postMessage doit envoyer le message après le chargement de la fenêtre et les messages envoyés auparavant 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
2Object WebView.on(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object WebView.on(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
addListener
Lier un gestionnaire d'événements à l'objet
1
2Object WebView.addListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'objet
1Object WebView.addListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object WebView.prependListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object WebView.prependListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
once
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1
2Object WebView.once(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Liez un gestionnaire d'événement unique à l'objet.Le gestionnaire unique ne sera déclenché qu'une seule fois.
1Object WebView.once(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
prependOnceListener
Lier un gestionnaire d'événements à l'origine de l'objet
1
2Object WebView.prependOnceListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Lier un gestionnaire d'événements à l'origine de l'objet
1Object WebView.prependOnceListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet sera utilisé comme nom d'événement et la valeur de l'attribut sera utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
off
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object WebView.off(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object WebView.off(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object WebView.off(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeListener
Désaffecter une fonction de la file d'attente de traitement des objets
1
2Object WebView.removeListener(String ev,
Function func);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
- func: Fonction, spécifiez la fonction de traitement des événements
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annuler toutes les fonctions dans la file d'attente de traitement des objets
1Object WebView.removeListener(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Désaffecter une fonction de la file d'attente de traitement des objets
1Object WebView.removeListener(Object map);
Paramètres d'appel :
- map: Objet, spécifie la relation de mappage d'événement, le nom de l'attribut de l'objet est utilisé comme nom d'événement et la valeur de l'attribut est utilisée comme fonction de traitement d'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
removeAllListeners
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object WebView.removeAllListeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
Annule tous les écouteurs de tous les événements de la file d'attente de traitement de l'objet. Si un événement est spécifié, supprime tous les écouteurs de l'événement spécifié.
1Object WebView.removeAllListeners(Array evs = []);
Paramètres d'appel :
- evs: Tableau, précisez le nom de l'événement
Résultats de retour :
- Object, renvoie l'objet événement lui-même pour faciliter les appels en chaîne
setMaxListeners
La limite par défaut du nombre d'auditeurs, pour des raisons de compatibilité uniquement
1WebView.setMaxListeners(Integer n);
Paramètres d'appel :
- n: Entier, précisez le nombre d'événements
getMaxListeners
Obtient le nombre limite par défaut d'écouteurs, pour des raisons de compatibilité uniquement
1Integer WebView.getMaxListeners();
Résultats de retour :
- Integer, renvoie la quantité limite par défaut
listeners
Interrogez le tableau d'écoute pour l'événement spécifié de l'objet
1Array WebView.listeners(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Array, renvoie le tableau d'écoute pour l'événement spécifié
listenerCount
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1Integer WebView.listenerCount(String ev);
Paramètres d'appel :
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
Interroger le nombre d'écouteurs pour l'événement spécifié de l'objet
1
2Integer WebView.listenerCount(Value o,
String ev);
Paramètres d'appel :
- o: Valeur, précise l'objet de la requête
- ev: String, spécifie le nom de l'événement
Résultats de retour :
- Integer, renvoie le nombre d'écouteurs pour l'événement spécifié
eventNames
Nom de l'événement d'écoute de requête
1Array WebView.eventNames();
Résultats de retour :
- Array, renvoie un tableau de noms d'événements
emit
Déclencher activement un événement
1
2Boolean WebView.emit(String ev,
...args);
Paramètres d'appel :
- ev: Chaîne, nom de l'événement
- args: ..., les paramètres de l'événement seront transmis à la fonction de traitement des événements
Résultats de retour :
- Boolean, renvoie l'état du déclencheur d'événement, renvoie vrai s'il y a un événement de réponse, sinon renvoie faux
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String WebView.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value WebView.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable