Изменить пользовательский агент в UIWebView - PullRequest
67 голосов
/ 26 января 2009

У меня есть бизнес, чтобы иметь возможность настроить UserAgent для встроенного UIWebView. (Например, я бы хотел, чтобы сервер реагировал по-другому, если, скажем, пользователь использует одну версию приложения по сравнению с другой.)

Можно ли настроить UserAgent в существующем элементе управления UIWebView, как, скажем, для встроенного браузера IE в приложении Windows?

Ответы [ 13 ]

1 голос
/ 08 февраля 2013

Единственной проблемой, которую я обнаружил, было изменение только пользовательского агента

- (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];
}
1 голос
/ 17 января 2013

Попробуйте это в 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];

}
0 голосов
/ 11 сентября 2015

Чтобы просто добавить пользовательский контент к текущему значению UserAgent, выполните следующие действия:

1 - получить значение агента пользователя из НОВОГО WEBVIEW

2 - добавить к нему пользовательский контент

3 - сохранить новое значение в словаре с ключом UserAgent

4 - сохранить словарь в стандартных пользовательских настройках.

См. Пример ниже:

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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...