web-dev-qa-db-fra.com

Cordova InAppBrowser - Comment désactiver l'URL et la barre de navigation?

Je suis en train de créer une application News Aggregator et j'utilise InAppBrowser pour que les gens lisent les articles. Maintenant, mes questions sont: Puis-je supprimer l'URL et la barre de navigation? Puis-je également modifier le texte du bouton "Terminé"?

S'il vous plaît, faites-moi savoir...

Merci

enter image description here

30
Andrei

Pour supprimer l'URL, définissez simplement l'option 'location' sur "no".

var ref = cordova.InAppBrowser.open('http://Apache.org', '_blank', 'location=no');

Sur Android, cela supprime les boutons 'Précédent/Suivant', l'URL et le bouton 'Terminé', pas seulement l'URL, mais heureusement il y a un spécial Android uniquement 'hideurlbar = 'option pour supprimer UNIQUEMENT l'URL.

var ref = cordova.InAppBrowser.open('http://Apache.org', '_blank', ‘hideurlbar=yes’);

Le texte du bouton "Terminé" peut être modifié en ajoutant une option "closebuttoncaption".
(Fonctionne maintenant sur Android si vous utilisez le plug-in InAppBrowser v2.0.2 ou supérieur.)

var ref = cordova.InAppBrowser.open('http://Apache.org', '_blank', 'closebuttoncaption=My Button Name');

Sur iOS, la barre d'outils peut être supprimée en définissant l'option 'toolbar' sur "no".

var ref = cordova.InAppBrowser.open('http://Apache.org', '_blank', 'toolbar=no');

Cependant, la suppression de la barre d'outils signifie que les boutons "Précédent/Suivant" ET le bouton "Terminé" ne s'afficheront plus. Cela rend difficile la sortie d'InAppBrowser.

(Quitter InAppBrowser est moins un problème sur Android, car le bouton de retour du système fournit une méthode de sortie alternative si le bouton 'Terminé' ne s'affiche pas.)

Si vous souhaitez conserver le bouton 'Terminé', mais vous débarrasser des boutons 'Précédent/Suivant', définissez l'option 'hidenavigationbuttons' sur 'oui '(nécessite le plugin InAppBrowser v3.0.0 ou supérieur).

var ref = cordova.InAppBrowser.open('http://Apache.org', '_blank', 'hidenavigationbuttons=yes');

Pour les anciennes versions de plug-in, vous pouvez supprimer manuellement les boutons "Précédent/Suivant" dans TOUS vos InAppBrowsers en modifiant le code source du plug-in InAppBrowser comme suit.


Pour iOS, ouvrez le fichier suivant

YOURAPPNAME/platforms/ios/YOURAPPNAME/Plugins/cordova-plugin-inappbrowser/CDVInAppBrowser.m

et changez la ligne de code suivante:

[self.toolbar setItems:@[self.closeButton, flexibleSpaceButton, self.backButton, fixedSpaceButton, self.forwardButton]];

à:

[self.toolbar setItems:@[self.closeButton, flexibleSpaceButton]];

Générez ensuite à nouveau votre projet à l'aide de la ligne de commande.


Pour Android, ouvrez le fichier suivant

YOURAPPNAME/platforms/Android/src/org/Apache/cordova/inappbrowser/InAppBrowser.Java

et supprimez la ligne de code suivante:

toolbar.addView(actionButtonContainer);

Pour supprimer également l'URL, supprimez également la ligne de code suivante:

toolbar.addView(edittext);

Générez ensuite à nouveau votre projet à l'aide de la ligne de commande.


Merci à danw et Vishwani pour les réponses utiles. Testé en avril 2018 avec Cordova 8.0.0, Cordova iOS 4.5.4, Cordova Android 7.1.0 et cordova-plugin-inappbrowser 3.0.0

89
wicketyjarjar

Dans 3.1.0 (?), Vous pouvez masquer la barre d'outils à l'aide de l'option 'barre d'outils'.

Par exemple:

ref = window.open('http://some.page/foo/', '_blank', 'location=no,toolbar=no');

voir: Phonegap docs

15
danw
window.open('http://url/', '_blank', 'location=no,toolbar=no');

location : réglez sur yes ou no pour activer ou désactiver la barre d'emplacement d'InAppBrowser.

barre d'outils : paramétrez sur yes ou no pour activer ou désactiver la barre d'outils pour InAppBrowser (par défaut sur yes). Cela semble être ios uniquement bien

Trouver toutes les options ici

6
aWebDeveloper

Si vous souhaitez conserver le bouton done/close et supprimer tout le reste, gardez location = yes:

var ref = window.open('http://Apache.org', '_blank', 'location=yes');

et apportez des modifications dans le fichier inappbrowser.Java:

toolbar.addView(close);
close.setText("Done");

if (getShowLocationBar()) {
main.addView(toolbar);}

Supprimez editText et actionButtonContainer. J'espère que ça aide.

2
Vishwani