2017-03-16 1 views
1

J'ai une application de téléphone qui fonctionne parfaitement via le serveur local sur l'application iOS de développement de phonegap.PhoneGap Build dans le navigateur de l'application n'est pas chargé

Plus précisément, un appel à

var ref = cordova.InAppBrowser.open('https://subdomain.domain.com', '_blank', 'location=no'); 

fonctionne très bien dans l'application dev, mais quand on le pousse à construire PhoneGap et accessible via l'application installée via TestFlight, en utilisant Hydratation facilement mettre à jour, le bouton est tout à fait insensible.

J'ai l'impression qu'aucun des plugins n'est en cours de chargement, car la barre d'état ne fonctionne pas correctement.

Voici la partie pertinente du fichier config.xml:

<plugin name="cordova-plugin-inappbrowser" spec="~1.7.0" /> 
<plugin name="cordova-plugin-statusbar" /> 
<plugin name="cordova-plugin-whitelist" spec="1.3.1" /> 

Je sais que l'insécurité de cela, cependant, le passage à l'URL que je suis en train d'accéder ne change rien:

<allow-navigation href="*" /> 
<allow-intent href="*" /> 
<access origin="*" /> 
<platform name="android"> 
    <allow-intent href="market:*" /> 
</platform> 
<platform name="ios"> 
    <allow-intent href="itms:*" /> 
    <allow-intent href="itms-apps:*" /> 
    <allow-intent href="*" /> 
</platform> 

Le bouton en question:

<a href="#" id="signUpButton" class="btn btn-default appButton appAlt"><span class="glyphicon glyphicon-shopping-cart" aria-hidden="true"></span> OR SIGN UP</a> 

Le javascript relatif à ce bouton:

document.addEventListener("deviceready", function(){ 

    deviceReadyDependantFunctions(); 

    initializeApplication(); 

}); 

function deviceReadyDependantFunctions(){ 

alert('initialised!'); 

$('#signUpButton').unbind().click(function(){ 

    console.log('here'); 

    var ref = cordova.InAppBrowser.open('https://subdomain.domain.com?some=variable', '_blank', 'location=no'); 
    ref.addEventListener('loadstart', function(event) { alert(event.url); }); 
    console.log(ref); 
}); 

} 

De toute évidence, il y a un tas de débogage là-dedans ....

Les feux d'alerte « initialisées » dans tous les environnements.

L'alerte event.url déclenche dans l'application de développement, mais pas dans le vol d'essai, l'application hydratée.

J'ai essayé tout ce que je peux trouver pour rectifier cela ... La seule solution que j'ai trouvée est d'utiliser un simple href="theUrl.com" et laisser le navigateur du système le charger. Ce qui n'est pas une solution du tout ... J'ai besoin de charger l'URL dans l'application. C'est une page d'inscription et il est essentiel que l'on puisse y accéder depuis l'application.

choses que j'ai essayé:

Chaque pénétration de la liste blanche, bien qu'il existe différents documents en disant que dans le navigateur application est/n'est pas affectée par le plug-in whitelist.

En utilisant une version différente de phonegap (<preference name="phonegap-version" value="cli-6.5.0" />) en vain.

Vérifié que les plugins sont présents dans l'onglet «plugins» de construction phonegap. Elles sont.

Essayé de remplacer la référence à cordova.js par phonegap.js. Cela n'a pas fonctionné du tout.

L'ordre de chargement des fichiers js (l'appel ci-dessus à inappbrowser est dans un fichier js séparé). Aucune différence.

Qu'est-ce que je fais de mal ?!

Ou y at-il quelque chose de bizarre avec la combinaison TestFlight/Hydrated Application?

Vous pouvez voir les commits ridicules que je l'ai fait, ainsi que la pleine codebase ici:

https://github.com/andycharrington/yfa/commits/master

Tout conseil serait massivement apprécié.

Merci.

+0

Désolé, j'ai également essayé toutes les variantes de "_blank", "_self", "_system" dans la fonction cordova.InAppBrowser.open. –

+0

En outre, j'ai essayé chaque permeation de la politique de sécurité de contenu. Il est actuellement: '' –

+0

avez-vous essayé de désinstaller les plugins, puis de les réinstaller parfois cela fait une différence. – Toxide82

Répondre

0

Recompiler le code inchangé avec Phone Gap Build ce matin a semblé le réparer par magie. Tu n'aimes pas ça quand ça arrive? :)