2011-07-26 96 views
3

我已經能夠通過使用更改用戶代理好

- (BOOL)webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 

NSMutableURLRequest *req = (NSMutableURLRequest *)request; 
NSString *versionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]; 

NSLog(@"user agent = %@", [req valueForHTTPHeaderField: @"User-Agent"]); 

if ([req valueForHTTPHeaderField:@"User-Agent"] != NULL) { 

    [req setValue:[NSString stringWithFormat:@"%@ %@", versionString, [req valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User-Agent"]; 
    NSLog(@"user agent = %@", [req valueForHTTPHeaderField: @"User-Agent"]); 

    return YES 
    } 
} 

改變用戶代理但是,當我去這個網站的設備http://whatsmyuseragent.com/我的用戶代理並沒有改變。有沒有辦法改變用戶代理的好處?

回答

0

您不能更改由Safari顯示的用戶代理,而只能使用您自己的應用程序使用的用戶代理。

+0

謝謝黃昏。我仍然會改變我的應用程序,但我的用戶代理現在(空)。我不確定這是爲什麼。代碼是一樣的。這有什麼我可以意外地改變,使用戶代理(空)? –

0

我注意到模擬器在有時測試時報告爲零。我不確定這是故意還是故意的。

0

做「手冊」 NSURLRequest那時你可以改變用戶代理的價值,但我不認爲你可以在UIWebView更改。

原因是,傳遞到上面顯示的方法中的值不可變 - 您無法更改它們,並期望應用程序的其餘部分將「接受」修改。老實說,我很驚訝將NSURLRequest轉換爲其可變的變體,然後改變它並不會導致你的應用程序崩潰。