最近項目反饋 有些手機 的 UIWebView 偶爾會顯示白屏,抓包顯示 response code 是304。查看代碼,發(fā)現(xiàn) loadRequest 的時候沒有用緩存,然后也不能復現(xiàn)磅废,一番搜索后,找到解決方案 參考這里荆烈。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
DELog(@" webViewDidFinishLoad request %@ ",webView.request);
// 判斷 請求不超過 3次
if ([webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"].length < 1 && self.blankPageCount < 3)
{// 空白頁
++self.blankPageCount;
DELog(@"Reconstructing request... %@",self.lastRequest);
NSString *uniqueURL = [NSString stringWithFormat:@"%@?t=%@", self.lastRequest.URL, [[NSProcessInfo processInfo] globallyUniqueString]];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:uniqueURL] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10.0]];
} else {
self.blankPageCount = 0;
}
}