UIWebView response status code 304

最近项目反馈 有些手机 的 UIWebView 偶尔会显示白屏,抓包显示 response code 是304。查看代码,发现 loadRequest 的时候没有用缓存,然后也不能复现,一番搜索后,找到解决方案 参考这里。

- (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;
    }
}

你可能感兴趣的:(UIWebView response status code 304)