Meine App hat UIWebViews, einige Loading-Sites, auf denen ich die Desktop-Version der Site benötige, einige Loading-Sites, auf denen ich die mobile Version der Site benötige.Verschiedene User-Agents für mehrere UIWebViews setzen
Also habe ich den User-Agent auf einen Desktop-User-Agent oder einen Mobile-User-Agent gesetzt, um dies zu erreichen.
Zum Beispiel, wenn ich eine UIWebView will eine Website Desktop-Version laden Ich will einfach diesen Code ausführen Recht vor:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
Das Problem ist, dass dies natürlich eine NSUserDefaults Variable setzt, was bedeutet, für jeden UIWebView In meiner App, die danach geladen wird, wird der Desktop-Benutzeragent verwendet. Ich kann einfach den NSUserAgent nach Bedarf zwischen Desktop und Handy umdrehen und entsprechend laden, aber manchmal benötigt meine App ZWEI UIWebViews, um gleichzeitig ein Mobilgerät, einen Desktop zu laden.
Gibt es eine Möglichkeit, den User-Agent eines UIWebView für das UIWebView spezifisch festzulegen?
Ich gehe davon aus, dass dies swizzling NSUrlRequest Methoden oder etwas beinhalten wird? Ich weiß sehr wenig über das Zeug
Wusste das nicht über WKWebView –
Danke für die Bearbeitung. Ich habe vergessen, dass sie das nicht bis iOS 9 hinzugefügt haben. – dgatwood
Keine Sorge! Dies hilft meinem aktuellen Projekt eine Tonne und wechsle heute zu WKWebView! –