Changer l'agent d'utilisateur Phonegap
Mon application Phonegap est autorisé à parcourir pour certains des sites externes qui également utiliser l'API Phonegap. Actuellement, je suis conditionnellement y compris la Phonegap basé sur ce que la plateforme (Android, iOS, etc). Cependant, je ne peux pas dire la différence entre Phonegap applications et le navigateur sur un appareil mobile. Est-il un moyen de changer l'user agent dans mon app Phonegap pour donner mon serveur, un soupçon à ce sujet?
Le plus intéressé dans l'iOS solution à cette question.
source d'informationauteur Nick Retallack
Vous devez vous connecter pour publier un commentaire.
Cette réponse à une question similaire mentionne également une préférence disponible dans l'actuelle Cordoue versions:
Il est documenté pour Android et iOS.
Si vous êtes toujours à la recherche d'une solution rapide pour que l'un, c'est comment je l'ai réalisé:
Dans le Phonegap (Cordoue) exemple d'application, vous devez ajouter ces lignes dans le didFinishLaunchingWithOptions méthode de AppDelegate.m
J'ai passé une journée entière à essayer de comprendre ce! Je suis sûr que ça pourrait être utile à d'autres personnes.
CB-2520 a été résolu, qui a proposé permettant à la chaîne de l'agent utilisateur doit être modifié. Vous pouvez le faire maintenant en définissant la baseUserAgent propriété de la MainViewController. Pour un simple test, vous pouvez ajouter le texte suivant à la didFinishLaunchingWithOptions méthode de la AppDelegate.maprès la MainViewController est initialisé:
self.viewController.baseUserAgent = @"My Custom User Agent";
Si vous êtes à la recherche pour un plus puissant client http pour cordova qui permet de changer le user agent, ou un en-tête dans cette affaire, essayer https://github.com/aporat/cordova-plugin-fetch. il s'enroule autour de bien testé le natif de mise en réseau des bibliothèques (
AFNetworking 2
sur ios, etOKHttp
sur android).il suit également la fenêtre.aller chercher, vous pouvez utiliser
cordovaFetch
sur les simulateurs et les appareils, tandis que les essais sur le navigateur avecfetch.js
.Il suffit d'installer le plugin avec
cordova plugin add https://github.com/aporat/cordova-plugin-fetch.git
et comprennent l'agent utilisateur d'en-tête lors de toute demande que vous faites.
Voir cette question: Détecter entre un navigateur mobile ou une application PhoneGap
J'ai apporté une contribution, mais il y a beaucoup de réponses qui pourraient vous convenir.
Je ne pouvais pas obtenir que cela fonctionne dans iOS à l'aide de Cordova 3.3, sans doute à cause de CB-2520 mais, comme un hack, j'ai modifié
CDVViewController
.h pour faire leuserAgent
propriété readwrite, et puis tout simplement mis à jour auto.userAgent dans leviewDidLoad
de mon contrôleur qui hérite deCDVViewController
.Si le temps est un problème, vous pouvez la force de le manipuler la
userAgent
chargement paresseux propriété dansCDVViewController.m
.Ces deux sont très sales. 🙂