iOS-UIWebView的那些事

某天,要從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]];
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容