J'ai donc un projet phonegap avec Phonegap 2.9.0 et la construction avec PhonegapBuild.
J'ai des liens externes dans mon application, que je voudrais ouvrir inapp ou en utilisant le navigateur de périphérique par défaut en dehors de mon application. Je suis ok pour les deux solutions. Aujourd'hui, mon application ouvre des liens inapp mais ça passe en plein écran, pas de zoom possible, et pas de bouton pour revenir dans l'application ...
J'essaie de trouver une solution pendant des jours et je regarde le même genre de questions ici, mais rien ne va bien.
Quelqu'un pourrait-il expliquer clairement en quoi consistent toutes ces choses et quels sont les différents choix/paramètres car je peux dire que ce n'est pas clair/facile du tout!
Q1:
Je commencerais par demander: dans le fichier config.xml, la préférence de rester dans la vue Web est obsolète maintenant pour phonegap 2.3.0, non? Donc, rien à espérer ici?
Q2: J'ai beaucoup lu et essayé beaucoup de choses sur le plugin InAppBrowser avec window.open et sur le système cible/blank/self, mais aucune différence pour moi. Je reste InApp mais inutile car pas de boutons de navigation.
Est-ce que j'ai râté quelque chose?
plugin name="InAppBrowser" value="CDVInAppBrowser"
Je commencerais par demander: dans le fichier config.xml, la préférence de rester dans la vue Web est obsolète maintenant pour phonegap 2.3.0, non? Donc, rien à espérer ici?
C'est correct. Ne vous inquiétez même pas de ce paramètre si vous utilisez 2.9
J'ai lu et essayé beaucoup de choses sur le plugin InAppBrowser avec window.open et cible système/blank/self mais aucune différence pour moi. Je reste InApp mais inutile car pas de boutons de navigation. Est-ce que j'ai râté quelque chose?
J'ai eu quelques problèmes pour que cela fonctionne aussi. Leur documentation est un peu éparse et doit tout lire. Voici comment je le fais fonctionner:
<script src="phonegap.js"></script>
dans chacune de vos pages qui veulent utiliser inappbrowser.Pour ouvrir un lien dans le navigateur inapp, utilisez ce javascript:
function openURL(urlString){
myURL = encodeURI(urlString);
window.open(myURL, '_blank');
}
Ceci ouvrira l'URL passée dans le inappbrowser. Si vous changez window.open(myURL, '_blank');
en window.open(myURL, '_system');
, l'URL transmise sera ouverte dans le navigateur du système.
Enfin, les clics de votre article ressemblent à ceci:
<a href='#' onclick='openURL("http://www.urlyouwant")/>
Ou vous pouvez attacher des listiners d’événements à l’objet, mais je pense que vous avez compris.
En outre, InAppBrowser dispose de nombreux écouteurs d'événements que vous pouvez y associer. Jetez un coup d'œil à la documentation si cela vous intéresse.
Important!!!! N'oubliez pas l'étape 1!
J'espère que cela t'aides.
Il existe 2 manières d’ouvrir une URL dans Android et iOS.
POUR IOS, utilisez le code suivant: window.open("http://google.com", '_system');
et pour Android, utilisez le code suivant: navigator.app.loadUrl("http://google.com", {openExternal : true});
La réponse de Dom fonctionne pour utiliser PhoneGap 2.9.0
CEPENDANT, comme il l'a dit, il est très important de suivre l'étape 1 J'utilise https://build.phonegap.com pour compiler mon application et j'ai utilisé <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
pour que cela fonctionne à la place de l'étape 1
Si tout échoue, essayez cet exemple. Il a été écrit par l'un des employés de Phone gap:
UPDATE: 2016-03-20 _ J'ai créé un tutoriel sur ce sujet.
Tutorial: Phonegap Construire une page Web externe dans iframe avec un exemple de liste blanche
Si vous lisez ceci, vous remarquerez peut-être que cet article fait référence à 2.9.0 pour Cordova/Phonegap/Phonegap Build. 2.x est officiellement obsolète et n'est plus pris en charge.
_ {Si vous utilisez 2.X et que vous souhaitez continuer à développer votre application, effectuez une mise à niveau.
Si vous compilez avec 3.x, 4.x ou 5.x ou mieux, lisez la suite.
Si vous googlé quelque chose comme les liens externes ne s'ouvrent pas, alors voici ce que vous devriez savoir. En septembre et octobre 2015, Cordova et Phonegap ont procédé à d'importants changements. Ces modifications sont entrées en vigueur white-list
ing
White-list
ing signifie que vous devez obligatoirement fournir au système une liste blanche des liens externes que vous prévoyez d'utiliser. Le système entier peut être déroutant. Je travaille actuellement sur un article de blog, mais jusque-là, voici ce que vous devez savoir.
Le système white-list
comprend trois (3) parties
config.xml
config.xml
L'application n'est pas simple. Si vous utilisez la version 3.x, vous n'avez PAS besoin de cela. Si vous utilisez 4.x ou mieux, cela s’applique à vous. Si vous utilisez 5.x, il y a encore plus de règles qui s'appliquent. Comme je l'ai dit, je travaille sur un blog, mais cette liste blanche est tellement lourde que je dois faire passer le mot.
Voici les liens dont vous avez besoin pour commencer.
Il y a plus d'explication ici:
Timeout AJAX Demandes Cordova 5
En outre, vous pouvez lire le numéro 10 de Principales erreurs de nouveaux développeurs pour Cordova/Phonegap
Si vous êtes courageux, vous pouvez lire mes notes * RAW * sur Cordova/Phonegap, le système de liste blanche
window.open ne semble pas fonctionner à partir de méthodes de rappel. (Peut-être que c'est une restriction de navigateur?) Ce n'est peut-être pas le problème du PO mais j'espère que la connaissance aidera quelqu'un.