Mon application téléphonique est autorisée à parcourir certains sites externes qui utilisent également l'API Phonegap. Actuellement, je comprends conditionnellement le PhoneGap Javascript basé sur la plate-forme sur laquelle vous vous trouvez (Android, iOS, etc.). Cependant, je ne peux pas dire la différence entre les applications PhoneGap et le navigateur régulier sur un appareil mobile. Existe-t-il un moyen de modifier l'agent utilisateur dans mon application PhoneGap pour donner un indice à mon serveur à ce sujet? P>
le plus intéressé par la solution iOS à cela. P>
6 Réponses :
Voir cette question: Détecter entre un Navigateur mobile ou application téléphonique P>
J'ai apporté une contribution, mais il y a beaucoup de réponses qui peuvent vous conviennent. P>
Si vous recherchez toujours une solution rapide pour celui-là, c'est ainsi que je l'ai atteint: dans l'application Sample Phonegap (Cordova), vous devez ajouter ces lignes. Dans la méthode EM> DidfinishLaunchingwithOptions em> appdelegate.m em> p> J'ai passé toute une journée à essayer de comprendre celui-ci! Je suis sûr que cela pourrait être utile aux autres personnes. P> p>
Serait bien d'inclure aussi la solution Android.
J'ai trouvé la solution Android à Stackoverflow .com / questions / 14406393 / ...
Pour obtenir une solution @alanou, vous devez ajouter le code qu'il affichait à la fin de la méthode DidfinishLaunchingwithOptions juste avant la déclaration de retour. Il semble que [Self.Window MakekeyandVisible]; doit courir avant de pouvoir changer l'UA. Testez OK sur iPhone 4 avec iOS 6.1.3
Je ne pouvais pas obtenir cela pour travailler dans iOS en utilisant Cordoue 3.3, probablement à cause de CB -2520 mais, en tant que pirate, j'ai modifié Si la synchronisation est un problème, vous pouvez manipuler de force le Les deux sont très sales. :) p> CDVViewController code> .h pour effectuer le
userAgent code> Propriété Readwrite, puis simplement mis à jour Self.UserAgent dans le
ViewDidLoad code> de mon contrôleur qui hérite de
CDVViewController code>. P>
userAgent code> Propriété de chargement paresseux dans
CDVViewController.m code>. p>.
CB-2520 a été résolu; CDVViewController a maintenant une propriété de baseAserAgent qui peut être modifiée
CB-2520 a été résolu, ce qui permettait de modifier la chaîne d'agent utilisateur à modifier. Vous pouvez le réaliser maintenant en définissant la propriété baseAserAgent em> du MainViewController. Pour un test simple, vous pouvez ajouter les éléments suivants à la méthode didfinishlaunchingwithOptions em> de la self.viewcontroller.baseuseragent = @ "mon agent utilisateur personnalisé"; code> p>
Cela n'a aucun effet quand je l'ai dit ... Qu'est-ce que je manque?
Cette réponse à une question similaire mentionne également une préférence disponible dans les versions actuelles CORDOVA:
<preference name="OverrideUserAgent" value="MyCordovaApp/1.2.3" />
Si vous recherchez un client HTTP plus puissant pour Cordoue qui permet de changer l'agent utilisateur ou tout en-tête, essayez https://github.com/aporat/cordova-plugin-fetch . Il enveloppe des bibliothèques de réseau natif bien testées ( Il suit aussi la fenêtre.fetch afin que vous puissiez utiliser Cordovafetch code> sur les simulateurs et les périphériques, tout en testant sur le navigateur avec Il suffit d'installer le plugin avec p> Plugin Cordova Ajouter https://github.com/aporat/cordova-plugin-fetch.git
code> p> et inclure l'en-tête de l'agent utilisateur dans n'importe quelle demande que vous avez faite. P> Afnetworking 2 code> sur iOS, et
OKHTTP code> sur Android).
fetch.js code>. p>
cordovaFetch('/users.json', {
method : 'GET',
headers: {
'User-Agent': 'your user agent'
},
})