某天,要從app打開其他網(wǎng)頁鏈接,http://www.tuniu.com/tour/210122757。
發(fā)現(xiàn),用safari 打開是手機端,用webView打開是電腦版頁面。一開始以為是 user-agent 沒設置好,找到手機端Safari 的 user-agent 替換掉webView 的。
NSString *userAgent = [_webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSLog(@"userAgent :%@", userAgent);
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A452 Safari/601.1", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
[[NSUserDefaults standardUserDefaults] synchronize];
可是出現(xiàn)的還是電腦版的網(wǎng)頁。
于是向其他iOS 求助,發(fā)現(xiàn),其他iOS 直接用 NSURLRequest 加載URL 出現(xiàn)的就是手機版。
NSString *str = [_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:str]];
[_webView loadRequest:request];
一對比,發(fā)現(xiàn)我把網(wǎng)頁數(shù)據(jù)緩存了,就是這一句把手機版網(wǎng)頁的鏈接打開變成了電腦版的。
NSString *htmlResponseStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:_url] encoding:NSUTF8StringEncoding error:nil];
[_webView loadHTMLString:htmlResponseStr baseURL:[NSURL URLWithString:_url]];