2013-01-19 4 views
3

L'InAppBrowser de Cordova 2.3.0 ne charge pas les URL correctement. Je comprends que cela a à voir avec la nouvelle méthode d'URL en liste blanche et comment ils ne s'appliquent qu'à Cordova WebView et non aux plugins. J'ai lu an article sur comment utiliser vos URL de liste blanche pour les plugins, mais c'est très vague et je ne sais pas où ajouter le code qu'ils suggèrent.Cordova 2.3 Phonegap Erreur de liste blanche de l'URL InAppBrowser

instructions de l'étape 3 dans le lien ci-dessus référencé suggèrent:

Étape 3). Les connexions réseau par plugins ne sont plus vérifiées par la liste blanche. Pour utiliser la liste blanche pour les connexions réseau de votre plugin, vous devez définir l'en-tête "User-Agent" de votre connexion sur l'agent utilisateur de viewController.

`CDVViewController* vc = ((CDVViewController*)self.viewController); 
NSString* userAgent = vc.userAgent; 
// then set the User-Agent header of your network connection...` 

L'article ne dit pas où ajouter ce code. Je suppose qu'il va dans MainViewController.m, mais je ne suis pas sûr. J'ai essayé de le placer dans la fonction init dans ce fichier et cela n'a pas fonctionné. Je ne sais pas non plus ce qu'ils veulent dire par "puis définissez l'en-tête User-Agent de votre connexion réseau ..." Où puis-je définir ceci?

Est-ce que quelqu'un a eu du succès avec ça? Si oui, j'aimerais de l'aide. Je suis vraiment coincé ici.

Merci!

Répondre

0

Cela se passe dans le fichier config.xml de votre projet phonegap. Ajoutez la balise suivante entre la balise <cordova>

<access origin="https://example.com" /> 

cette balise permet toute demande de sécurité example.com

éléments d'accès contrôlent la liste blanche Android. Les domaines sont bloqués supposaient moins d'être autrement

+0

Salut Clinton. Merci d'avoir répondu. J'ai déjà l'accès orgin à *. Le problème est lorsque vous utilisez InAppBrowser, il n'adhère pas à cette liste blanche. D'une certaine façon, je dois configurer cela dans l'objectif C. Des pensées? – jjsquared

0

J'ai posté ce ici: Phonegap/Cordova 2.3.0 iOS Whitelist Ignored

Si vous utilisez storyboards. Ajouter à votre MainViewController ou votre contrôleur: CDVViewController

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     self = [self init]; 
    } 
    return self; 
} 
+0

J'ai ajouté ceci à mon MainViewController.m sans aucune chance. J'ai ensuite essayé de l'ajouter à mon CDVViewController avec les mêmes résultats: [5170: 907] webView: didFailLoadWithError - L'opération n'a pas pu aboutir. (Erreur WebKitErrorDomain 101.) Des idées sur quoi essayer ensuite? – jjsquared

0

La raison pour laquelle je continuais obtenir le webView: didFailLoadWithError était due à l'URL étant passées sans être codées. Une URL régulière comme google.com a bien fonctionné, mais une URL plus compliquée avec params a provoqué l'erreur de chargement. Le travail autour de cela est de coder l'URL avant d'appeler window.open:

var URL = encodeURI(e.data.url); var ref = window.open(URL, '_blank', 'location=yes');

Ce résolu le problème en utilisant Cordova 2.5.

Questions connexes