Notre Blog
Ce blog est principalement dédié à la programmation iPhone et iPad ainsi que des informations sur nos applications
Ce blog est principalement dédié à la programmation iPhone et iPad ainsi que des informations sur nos applications

UIWebView ne fournit aucune façon de changer le User-Agent.
Et non seulement il ne fournit aucune façon de le changer, mais il écrase aussi cette valeur quand on essaie de la définir dans un objet NSMutableURLRequest passé comme requête dans la méthode loadRequest d'un UIWebView.
Il y a quelques solutions que j'ai trouvé sur Internet qui fonctionnent mais aucune n'est parfaite :
Une solution est de définir User_Agent à la place de User-Agent dans un NSMutableURLRequest.
Cela fonctionne pour certains sites Internet mais pas tous car définir User_Agent n'écrase pas la valeur de User-Agent, mais ajoute simplement une autre valeur de header appelée User_Agent que certains sites utilisent à la place de User-Agent.
Une autre solution qui fonctionne bien est d'utiliser la méthode appelée Method Swizzling sur la classe NSMutableURLRequest pour regarder quand la valeur User-Agent est définie et écraser cette valeur pour avoir l'User-Agent désiré.
Le problème avec cette méthode est qu'elle n'est pas facile à implémenter et que le Method Swizzling peut être dangereux si on ne fais pas attention à la façon dont on l'utilise.
L'autre problème avec cette méthode est qu'Apple peur rejeter votre application si elle utilise le Method Swizzling.
J'ai donc cherché et trouvé (avec de la chance) une solution qui est simple, sans utiliser le Method Swizzling et qui écrase le vrai User-Agent (et pas User_Agent).
Voici la méthode de classe à ajouter à votre controleur principal (ou votre app delegate) :
0 commentaires sur "Changer facilement le User-Agent dans un UIWebView"
Publier un nouveau commentaire