某天,要从app打开其他网页链接,http://www.tuniu.com/tour/210122757。
发现,用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];
可是出现的还是电脑版的网页。
于是向其他iOS 求助,发现,其他iOS 直接用 NSURLRequest 加载URL 出现的就是手机版。
NSString *str = [_url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:str]];
[_webView loadRequest:request];
一对比,发现我把网页数据缓存了,就是这一句把手机版网页的链接打开变成了电脑版的。
NSString *htmlResponseStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:_url] encoding:NSUTF8StringEncoding error:nil];
[_webView loadHTMLString:htmlResponseStr baseURL:[NSURL URLWithString:_url]];