重新加载UIWebView使其变为空白

时间:2013-04-28 21:32:34

标签: ios uiwebview nsurlconnection

我正在使用以下方法在UIWebView中加载网页

 [NSURLConnection sendAsynchronousRequest:request
                                    queue:loadingQueue
                        completionHandler:^(NSURLResponse *response,
                                           NSData *data,
                                           NSError *error) {
                            if(!error) {
                                [_webView loadData: data
                                          MIMEType: [response MIMEType]
                                  textEncodingName: [response textEncodingName]
                                           baseURL:nil];
                           }
                       }];

首先,对于几页,根本不加载图像。其次,当我稍后通过

刷新页面时
      [_webView reload];

网页视图变为空白。

有谁知道这里发生了什么?

TIA, NIKHIL

3 个答案:

答案 0 :(得分:1)

  

我使用以下方法[NSURLConnection sendAsynchronousRequest

在UIWebView中加载网页

好吧,不要。 UIWebView已经知道如何从Internet获取数据,并异步加载其请求。因此,只需通过调用loadRequest:来处理UIWebView请求即可。现在请坐下来等待委托消息到达。如果出现问题,委托消息将告诉您。

答案 1 :(得分:1)

经过几次迭代和网络搜索后,我才明白这个问题主要发生(如果不是)因为网站有相对路径。

期望至少第一个问题将得到解决,我修改了

     [_webView loadData: data
               MIMEType: [response MIMEType]
       textEncodingName: [response textEncodingName]
                baseURL: nil];

将baseURL包含为

                baseURL: [request URL]];

令人惊讶的是,两个问题都得到了解决。我可以理解为什么它有助于解决“图像不下载”部分,但我无法猜出为什么已经(成功)加载的页面变为空白的原因,如果baseURL不存在。

任何人都可以对此有所了解吗?

谢谢, NIKHIL

答案 2 :(得分:0)

对我来说,loadData的第一次调用运行良好,但接下来调用加载空白页。

我尝试了以下解决方法,它可以运行:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
[webView loadData:data MIMEType:mimeType textEncodingName:@"UTF-8" baseURL:[NSURL new]];

因此,loadRequest的调用修复了webView的状态。