Cordova, pourquoi InAppBrowser plugin sera nécessaire pour ouvrir les liens dans le navigateur de votre système

J'ai une application Cordova, c'est une simple page de l'application avec un seul fichier HTML.

Tous les liens doivent s'ouvrir dans le navigateur de votre système. Je ne veux pas d'un "embedded" InAppBrowser mais vraiment le système natif /navigateur externe.

Partout on peut trouver des exemple de code à l'aide de InAppBrowser avec quelque chose comme:

window.open('http://apache.org', '_system');

Mais pourquoi avons-nous besoin d'installer InAppBrowser, même si nous n'avons même pas de plan pour l'utilisation d'un navigateur intégré?

Quelqu'un peut-il vraiment expain ce qui est censé être le comportement d'une WebView, concernant la cible d'un lien. Il n'est pas clair ce qu'il est censé faire avec un target=_blank, mais je ne vois rien d'autre qu'il peut faire, à l'exception de l'ouverture d'une nouvelle fenêtre du navigateur.

Avis que le problème semble être la seule à être avec iOS car avec Android (avec tableau de Concordance du plugin) à l'aide de target=_blank semble toujours bien fonctionner et de s'ouvrir dans une nouvelle fenêtre de navigateur native.

Bien, à partir de ma compréhension, vous êtes toujours dans une webview. Maintenant, vous voulez interroger les principaux navigateur de votre système. Maintenant la normale _target vide peut ne pas toujours fonctionner, en particulier à travers toutes les plates-formes de cordova prend en charge. Pour obtenir plus de cela, nous utilisons la inappbrowser qui passe par le natif de la couche d'appeler le navigateur. De cette façon, nous pouvons être à la garantie d'une solution de travail à travers toutes les plateformes prises en charge.
mais alors pourquoi ne pas créer un plugin qui n'est tout simplement pas un "InAppBrowserPlugin" et de n'ouvrir tous les liens avec _blank dans le navigateur de votre système? Je crois que le plugin est en essayant de résoudre 2 problèmes distincts, l'un d'entre eux n'étant pas clairement indiqué dans le plugin (mais ne pas vraiment sûr que ce n'est pas vraiment expliqué)
Je l'ai fait, et effectivement, il fait toutes les requêtes Ajax échouer sur Android pour autant que je sais. Aussi il n'est pas documentée ici: github.com/apache/cordova-plugin-whitelist
Aussi vous pouvez voir dans le code source du plugin que cette option n'a d'effet que sur Android code natif, et est dépréciée en faveur de allow-access selon cet avertissement journal: Found <access launch-external> within config.xml. Please use <allow-intent> instead.
Désolé, ne pas l'essayer avant de commenter, j'ai essayé et vous avez raison. La chose est, cordova est un cadre pour la création d'applications mobiles, de sorte que, toutes les ressources doivent être locales et des liens externes font pas de sens réel (au moins pour moi). Dans le cas où vous en avez besoin, alors vous avez la inAppBrowser plugin, qui permet d'ouvrir les liens sur le inAppBrowser ou dans le navigateur de votre système. C'est vrai que c'est un peu étrange que vous ayez à installer un "inAppBrowser" plugin pour lancer un navigateur externe, mais vous pouvez créer votre propre plugin pour lancer le navigateur sans les inAppBrowser

OriginalL'auteur Sebastien Lorber | 2015-08-25