Je suis totalement nouveau au développement Phonegap et j'essaie quelque chose qui semble plutôt simple mais qui ne fonctionne pas. J'ai suivi les guides "Getting started" de Phonegap et j'ai installé l'application "PhoneGap Developer" sur mon téléphone Android. J'ai créé une application et je la desserve avec phonegap serve
. J'ai retiré la valeur par défaut js/index.js
et appelle à app.initialize()
et inclut les composants suivants ajoutés à la index.html
à sa place:phonegap window.location = url ne fonctionne pas
<script>
function onDeviceReady() {
if (navigator.connection.type == Connection.NONE) {
navigator.notification.alert(
'An internet connection is required to continue');
} else {
navigator.notification.alert("HERE!");
window.location = "https://google.com";
}
}
document.addEventListener("deviceready", onDeviceReady, false);
</script>
Si j'accéder à l'application avec un navigateur Chrome, il se charge correctement, donne le message pop-up, et charge ensuite Google. Si j'essaie d'utiliser l'application Android PhoneGap Developer, il apparaît avec le message, puis ne fait rien.
Dans le config.xml j'ai essayé de mettre tout en permissive que possible juste pour le faire fonctionner:
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
Sur la console du serveur, je reçois l'avertissement suivant:
[phonegap] [console.warn] Content Security Policy has been modified to be: <meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' gap: ws: https://ssl.gstatic.com;style-src 'self' 'unsafe-inline' data: blob:;media-src *;img-src * 'self' data: content:;script-src * 'unsafe-inline' 'unsafe-eval' data: blob:;">
I ne suis pas assez familier avec les politiques CSP pour déterminer si cette politique limite réellement le chargement de «google.com» ou non ...
Une idée pour laquelle l'outil de développement ne permet pas toute la navigation pour faciliter le développement? Cela me semble vraiment étrange. –
Je ne sais pas, mais à mon avis, c'est une mauvaise pratique de créer des applications Cordova/Phonegap qui naviguent vers des sites externes à l'intérieur de la webview Cordova. Pour naviguer vers des sites externes, vous avez le plugin inAppBrowser. – jcesarmobile
Je serais d'accord avec vous en général, mais c'est un outil de dev-only. –