# org.apache.cordova.inappbrowser Ce plugin vous offre une vue de navigateur web qui s'affiche lorsque vous appelez `window.open()` , ou quand un lien d'ouverture formé comme``. var ref = window.open('http://apache.org', '_blank', 'location=yes'); **Remarque**: InAppBrowser la fenêtre se comporte comme un navigateur web standard et ne peut pas accéder aux APIs Cordova. ## Installation cordova plugin add org.apache.cordova.inappbrowser ## window.open Ouvre une URL dans une nouvelle instance de la classe `InAppBrowser`, une instance déjà existante ou dans le navigateur système. var ref = window.open(url, target, options); * **ref** : référence à la fenêtre `InAppBrowser`. *(InAppBrowser)* * **url** : l'URL à charger *(String)*. À encoder au préalable via `encodeURI()` si celle-ci contient des caractères Unicode. * **target** : la cible du chargement de l'URL, ce paramètre est optionnel, sa valeur par défaut est `_self`. *(String)* * `_self` : dirige le chargement vers la WebView Cordova si l'URL figure dans la liste blanche, sinon dans une fenêtre `InAppBrowser`. * `_blank` : dirige le chargement vers une fenêtre `InAppBrowser`. * `_system` : dirige le chargement vers le navigateur Web du système. * **options** : permet de personnaliser la fenêtre `InAppBrowser`. Paramètre facultatif dont la valeur par défaut est `location=yes`. *(String)* La chaîne `options` ne doit contenir aucun caractère vide, chaque paire nom/valeur représentant une fonctionnalité doit être séparée de la précédente par une virgule. Les noms de fonctionnalités sont sensibles à la casse. Toutes les plates-formes prennent en charge la valeur ci-dessous : * **location** : régler à `yes` ou `no` afin d'afficher ou masquer la barre d'adresse de la fenêtre `InAppBrowser`. Android uniquement : * **closebuttoncaption**: affectez une chaîne à utiliser comme la **fait** légende du bouton. * **caché**: la valeur `yes` pour créer le navigateur et charger la page, mais ne pas le montrer. L'événement load est déclenché lorsque le chargement est terminé. Omettre ou la valeur `no` (par défaut) pour que le navigateur ouvrir et charger normalement. * **ClearCache**: la valeur `yes` pour que le navigateur du cache de cookie effacé, avant l'ouverture de la nouvelle fenêtre * **clearsessioncache**: la valeur `yes` pour avoir le cache de cookie de session autorisé avant l'ouverture de la nouvelle fenêtre iOS uniquement : * **closebuttoncaption**: affectez une chaîne à utiliser comme la **fait** légende du bouton. Notez que vous devrez localiser cette valeur vous-même. * **disallowoverscroll**: la valeur `yes` ou `no` (valeur par défaut est `no` ). Active/désactive la propriété UIWebViewBounce. * **caché**: la valeur `yes` pour créer le navigateur et charger la page, mais ne pas le montrer. L'événement load est déclenché lorsque le chargement est terminé. Omettre ou la valeur `no` (par défaut) pour que le navigateur ouvrir et charger normalement. * **barre d'outils**: la valeur `yes` ou `no` pour activer la barre d'outils ou désactiver pour le InAppBrowser (par défaut,`yes`) * **enableViewportScale** : selon si la valeur est `yes` ou `no`, une balise meta est injectée avec pour but de permettre ou empêcher l'utilisateur de zoomer dans le viewport (`no` par défaut). * **mediaPlaybackRequiresUserAction** : selon si la valeur est `yes` ou `no`, la lecture automatique de contenus HTML5 audio ou vidéo (c'est à dire sans action préalable de l'utilisateur) est désactivée ou activée (`no` par défaut). * **allowInlineMediaPlayback**: la valeur `yes` ou `no` pour permettre la lecture du média en ligne HTML5, affichage dans la fenêtre du navigateur plutôt que d'une interface de lecture spécifique au périphérique. L'élément HTML `video` doit également comporter l'attribut `webkit-playsinline` (`no` par défaut) * **keyboardDisplayRequiresUserAction** : régler sur `yes` ou `no` pour interdire ou autoriser l'ouverture du clavier lorsque des éléments de formulaire reçoivent le focus par l'intermédiaire d'un appel à la méthode JavaScript `focus()` (`yes` par défaut). * **suppressesIncrementalRendering** : selon si la valeur est `yes` ou `no`, le rendu de la vue attendra ou non que tout nouveau contenu soit reçu (`no` par défaut). * **presentationstyle** : régler sur `pagesheet`, `formsheet` ou `fullscreen` afin d'obtenir le [style de présentation][1] de fenêtre souhaité (`fullscreen` par défaut). * **transitionstyle**: régler la valeur à `fliphorizontal`, `crossdissolve` ou `coververtical` afin de définir le [style de transition][2] de fenêtre souhaité (`coververtical` par défaut). * **toolbarposition**: la valeur `top` ou `bottom` (valeur par défaut est `bottom` ). Causes de la barre d'outils être en haut ou en bas de la fenêtre. [1]: http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/UIViewController/modalPresentationStyle [2]: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/UIViewController/modalTransitionStyle ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS * Windows Phone 7 et 8 ### Exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); var ref2 = window.open(encodeURI('http://ja.m.wikipedia.org/wiki/ハングル'), '_blank', 'location=yes'); ## InAppBrowser L'objet retourné par un appel à `window.open`. ### Méthodes * addEventListener * removeEventListener * close * show * executeScript * insertCSS ## addEventListener > Ajoute un écouteur pour un évènement de la fenêtre `InAppBrowser`. ref.addEventListener(eventname, callback); * **ref** : référence à la fenêtre `InAppBrowser`. *(InAppBrowser)* * **eventname** : l'évènement à écouter *(String)* * **loadstart** : évènement déclenché lorsque le chargement d'une URL débute dans la fenêtre `InAppBrowser`. * **loadstop** : évènement déclenché lorsque la fenêtre `InAppBrowser` finit de charger une URL. * **loaderror** : évènement déclenché si la fenêtre `InAppBrowser` rencontre une erreur lors du chargement d'une URL. * **exit** : évènement déclenché lorsque la fenêtre `InAppBrowser` est fermée. * **callback** : la fonction à exécuter lorsque l'évènement se déclenche. Un objet `InAppBrowserEvent` lui est transmis comme paramètre. ### InAppBrowserEvent Properties * **type** : le nom de l'évènement, soit `loadstart`, `loadstop`, `loaderror` ou `exit`. *(String)* * **url** : l'URL ayant été chargée. *(String)* * **code** : le code d'erreur, seulement pour `loaderror`. *(Number)* * **message** : un message d'erreur, seulement pour `loaderror`. *(String)* ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS * Windows Phone 7 et 8 ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); ref.addEventListener('loadstart', function() { alert(event.url); }); ## removeEventListener > Supprime un écouteur pour un évènement de la fenêtre `InAppBrowser`. ref.removeEventListener(eventname, callback); * **ref** : référence à la fenêtre `InAppBrowser`. *(InAppBrowser)* * **eventname** : l'évènement pour lequel arrêter l'écoute. *(String)* * **loadstart**: événement déclenche quand le `InAppBrowser` commence à charger une URL. * **loadstop**: événement déclenche lorsque la `InAppBrowser` finit de charger une URL. * **loaderror** : évènement déclenché si la fenêtre `InAppBrowser` rencontre une erreur lors du chargement d'une URL. * **sortie**: événement déclenche quand le `InAppBrowser` fenêtre est fermée. * **callback** : la fonction à exécuter lorsque l'évènement se déclenche. Un objet `InAppBrowserEvent` lui est transmis comme paramètre. ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS * Windows Phone 7 et 8 ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); var myCallback = function() { alert(event.url); } ref.addEventListener('loadstart', myCallback); ref.removeEventListener('loadstart', myCallback); ## close > Ferme la fenêtre `InAppBrowser`. ref.close(); * **Réf**: référence à la `InAppBrowser` fenêtre *(InAppBrowser)* ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS * Windows Phone 7 et 8 ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); ref.close(); ## show > Affiche une fenêtre InAppBrowser qui a été ouverte cachée. Appeler cette méthode n'a aucun effet si la fenêtre en question est déjà visible. ref.show(); * **Réf**: référence à la fenêtre () InAppBrowser`InAppBrowser`) ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'hidden=yes'); // some time later... ref.show(); ## executeScript > Injecte du code JavaScript dans la fenêtre `InAppBrowser` ref.executeScript(details, callback); * **Réf**: référence à la `InAppBrowser` fenêtre. *(InAppBrowser)* * **injectDetails** : détails du script à exécuter, requérant une propriété `file` ou `code`. *(Object)* * **file** : URL du script à injecter. * **code** : texte du script à injecter. * **callback** : une fonction exécutée après l'injection du code JavaScript. * Si le script injecté est de type `code`, un seul paramètre est transmis à la fonction callback, correspondant à la valeur de retour du script enveloppée dans un `Array`. Pour les scripts multilignes, il s'agit de la valeur renvoyée par la dernière instruction ou la dernière expression évaluée. ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); ref.addEventListener('loadstop', function() { ref.executeScript({file: "myscript.js"}); }); ## insertCSS > Injecte des règles CSS dans la fenêtre `InAppBrowser`. ref.insertCSS(details, callback); * **Réf**: référence à la `InAppBrowser` fenêtre *(InAppBrowser)* * **injectDetails**: Détails du script à exécuter, spécifiant soit un `file` ou `code` clés. *(Objet)* * **file** : URL de la feuille de style à injecter. * **code** : contenu de la feuille de style à injecter. * **callback** : une fonction exécutée après l'injection du fichier CSS. ### Plates-formes prises en charge * Amazon Fire OS * Android * BlackBerry 10 * iOS ### Petit exemple var ref = window.open('http://apache.org', '_blank', 'location=yes'); ref.addEventListener('loadstop', function() { ref.insertCSS({file: "mystyles.css"}); });