72 Stimmen

Benutzeragent in UIWebView ändern

Ich habe eine geschäftliche Notwendigkeit, den UserAgent für eine eingebettete UIWebView anpassen zu können. (Zum Beispiel möchte ich, dass der Server anders reagiert, wenn, sagen wir, ein Benutzer eine Version der App gegenüber einer anderen verwendet).

Ist es möglich, den UserAgent in der vorhandenen UIWebView-Steuerelement die Art und Weise ist es, sagen wir, für einen eingebetteten IE-Browser in einer Windows-Anwendung anpassen?

1voto

Aitul Punkte 2994

Versuchen Sie dies in der AppDelegate.m

+ (void)initialize 

{

    // Set user agent (the only problem is that we can’t modify the User-Agent later in the program)

    // iOS 5.1

    NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@”Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3”, @”UserAgent”, nil];

    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];

}

1voto

Sanjeev sharma Punkte 169

Das einzige Problem, das ich gefunden habe, war die Änderung des Benutzer-Agenten

- (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSDictionary *dictionary = [NSDictionary 
        dictionaryWithObjectsAndKeys:
        @"Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5", 
        @"UserAgent", nil];
    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
}

1voto

ThE uSeFuL Punkte 1427

Apple wird bald keine Apps mit UIWebView mehr akzeptieren. Unten finden Sie eine Anleitung, wie Sie den User Agent in WKWebView ändern können.

let config = WKWebViewConfiguration()

config.applicationNameForUserAgent = "My iOS app"

webView = WKWebView(frame: <the frame you need>, configuration: config)

0voto

Doug Punkte 1163

Um dem aktuellen UserAgent-Wert einen benutzerdefinierten Inhalt hinzuzufügen, gehen Sie wie folgt vor:

1 - Abrufen des User-Agent-Wertes aus einem NEUEN WEBVIEW

2 - Fügen Sie den benutzerdefinierten Inhalt hinzu

3 - Speichern Sie den neuen Wert in einem Wörterbuch mit dem Schlüssel UserAgent

4 - Speichern Sie das Wörterbuch in standardUserDefaults.

Siehe das folgende Beispiel:

NSString *userAgentP1 = [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString *userAgentP2 = @"My_custom_value";
NSString *userAgent = [NSString stringWithFormat:@"%@ %@", userAgentP1, userAgentP2];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:userAgent, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X