1

我正在使用以下方法在 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];

Web 视图变为空白。

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

TIA,尼基尔

4

3 回答 3

1

经过几次迭代和网络搜索,我了解到这个问题主要(如果不是唯一的话)由于具有相对路径的站点而发生。

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

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

将 baseURL 包含为

                baseURL: [request URL]];

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

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

谢谢,尼基尔

于 2013-05-01T18:35:30.270 回答
1

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

好吧,不要。UIWebView 已经知道如何从 Internet 获取数据,并异步加载其请求。所以只需通过调用 UIWebView 将请求交给loadRequest:. 现在坐下来等待委托消息到达。如果有问题,委托消息会告诉你。

于 2013-04-28T21:37:38.593 回答
0

对我来说,第一次调用 loadData 效果很好,但下一次调用加载空白页。

我尝试了以下解决方法并且它有效:

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

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

于 2017-04-11T10:46:02.910 回答