Ouvrir les liens externes dans L'application Phonegap Build (iOS / Android))
j'utilise Phonegap Build pour déployer les applications mi, j'utilise la version Cordova 3.3.0 .
je veux des liens externes ouverts dans le navigateur natif ( Android/iOS ). J'essaie d'utiliser le plugin InAppBrowser de Cordova, mais ça ne marche pas pour moi. Ouvrez les liens mais à l'intérieur de L'application sans bouton back... : /
j'ai vu des réponses comme Inclure phonegap.js fichier (mais quand se déploie avec Phonegap construire vous ne devez pas l'inclure, PGB le faire pour vous), ou en utilisant ou en utilisant une fonction pour ouvrir les liens + InAppBrowser Plugin , ou même qui disent que c'est fixe se déployant localement , mais Je ne peux pas se déployer localement parce que mon Mac ne supporte pas les nouvelles versions de XCode et iOS sdk's.
C'est le code pertinent de mon config.xml :
<preference name="phonegap-version" value="3.3.0" />
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.3.3" />
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<access origin="*" />
C'est la fonction JS j'ai essayé:
function abrirURL(url){
if(device.platform === 'Android') {
navigator.app.loadUrl(url, {openExternal:true});
} else {
window.open(url, '_system');
}
}
Et le liens j'ai essayé, de la plus basique à l'utilisation de fonctions:
<a href="http://www.example.com" target="_blank">Link</a>
<a href="#" onClick="abrirURL('http://www.example.com');">Link</a>
<a href="#" onClick="window.open('http://www.example.com', '_blank');">
<a href="#" onClick="window.open('http://www.example.com', '_system');">
rien de tout cela ne marche pour moi, que quelqu'un m'aide s'il vous plaît. Merci!
2 réponses
la solution pour mon problème était inclure phonegap.fichier js à mon <head>
dans toutes les pages où je vais utiliser le InAppBrowser: <script src="phonegap.js"></script>
je vais expliquer un peu, pourquoi cette solution dans la première fois ne semble pas logique pour moi (et peut-être vous aussi), mais alors j'ai essayé et ça fonctionne.
C'est ce que dit Phonegap dans sa documentation du plugin section:
" si un plugin utilise l'élément
js-module
pour diriger cordova pour charger le plugin javascripts, alors aucune référence<script>
sera nécessaire pour charger un plugin. C'est le cas pour les plugins core cordova
InAppBrowser est un plugin core cordova. Mais pour une raison étrange ne fonctionne pas jusqu'à ce que vous incluez le fichier phonegap.js
(au moins dans la version 0.3.3).
NOTE : j'ai trouvé un bug. Certaines personnes disent que vous devez inclure 3 fichiers: phonegap.js
, cordova.js
et cordova_plugins.js
. Mais quand j'inclus ces 3 fichiers, mon application fonctionne très bien dans iOS 7, mais dans iOS 6 ignorer l'utilisation du plugin (en utilisant: Cordova 3.3.0 + Phonegap Build + InAppBrowser 0.3.3).
j'avais besoin de faire deux choses pour que cela fonctionne en 3.7.0.
config.xml
<gap:plugin name="org.apache.cordova.inappbrowser" />
en HTML a tags
<a onclick="window.open(this.href,'_system','location=no');return false;" href="http://stackoverflow.com">
j'ai en fait écrit une fonction pour gérer cela afin que mon HTML soit normal
$(document).on('click','a',function(e) {
if ($(this).attr('target') === '_blank') {
window.open($(this).attr('href'),'_system','location=no');
e.preventDefault();
}
});