iOS-UIWebView的那些事

某天,要从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]];

你可能感兴趣的:(iOS-UIWebView的那些事)