11
votes

Modifier l'agent utilisateur de téléphones téléphones

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?

le plus intéressé par la solution iOS à cela.


0 commentaires

6 Réponses :


0
votes

Voir cette question: Détecter entre un Navigateur mobile ou application téléphonique

J'ai apporté une contribution, mais il y a beaucoup de réponses qui peuvent vous conviennent.


0 commentaires

18
votes

Si vous recherchez toujours une solution rapide pour celui-là, c'est ainsi que je l'ai atteint: xxx

dans l'application Sample Phonegap (Cordova), vous devez ajouter ces lignes. Dans la méthode DidfinishLaunchingwithOptions appdelegate.m

J'ai passé toute une journée à essayer de comprendre celui-ci! Je suis sûr que cela pourrait être utile aux autres personnes.


3 commentaires

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



0
votes

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é CDVViewController .h pour effectuer le userAgent Propriété Readwrite, puis simplement mis à jour Self.UserAgent dans le ViewDidLoad de mon contrôleur qui hérite de CDVViewController .

Si la synchronisation est un problème, vous pouvez manipuler de force le userAgent Propriété de chargement paresseux dans CDVViewController.m . .

Les deux sont très sales. :)


1 commentaires

CB-2520 a été résolu; CDVViewController a maintenant une propriété de baseAserAgent qui peut être modifiée



6
votes

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 du MainViewController. Pour un test simple, vous pouvez ajouter les éléments suivants à la méthode didfinishlaunchingwithOptions de la appdelegate.m , après l'initialisation du MainViewController:

self.viewcontroller.baseuseragent = @ "mon agent utilisateur personnalisé";


1 commentaires

Cela n'a aucun effet quand je l'ai dit ... Qu'est-ce que je manque?



7
votes

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" />


0 commentaires

3
votes

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 ( Afnetworking 2 code> sur iOS, et OKHTTP code> sur Android).

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 fetch.js code>. p>

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>

cordovaFetch('/users.json', {
  method : 'GET',
  headers: {
   'User-Agent': 'your user agent'
 },
})


0 commentaires