Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone SDK:UIWebView停止图像加载/下载_Iphone_Objective C_Xcode - Fatal编程技术网

iPhone SDK:UIWebView停止图像加载/下载

iPhone SDK:UIWebView停止图像加载/下载,iphone,objective-c,xcode,Iphone,Objective C,Xcode,如何在Xcode中使用UIWebView,使其在加载页面时不会下载图像(以加快加载页面)?成为UIWebView的代理,然后拦截调用: – webView:shouldStartLoadWithRequest:navigationType: 检查文档中navigationType的值。我相信在navigationType==UIWebViewNavigationTypeOtherUIWebView上返回NO对您来说是最好的选择。UIWebView是WebKit完整的WebView的一个苍白、可

如何在Xcode中使用UIWebView,使其在加载页面时不会下载图像(以加快加载页面)?

成为UIWebView的代理,然后拦截调用:

– webView:shouldStartLoadWithRequest:navigationType:

检查文档中navigationType的值。我相信在
navigationType==UIWebViewNavigationTypeOther

UIWebView
上返回
NO
对您来说是最好的选择。UIWebView是WebKit完整的
WebView
的一个苍白、可怜的小阴影,这很容易做到<代码>-webView:shouldStartLoadWithRequest:navigationType:
仅为导航调用。它不会像mac上的
WebPolicyDelegate
那样为每个请求调用。使用
UIWebView
,我将如何解决这个问题:


实现
-webView:shouldStartLoadWithRequest:navigationType:
,并将其设置为始终返回
。但您也将接受请求并生成一个
NSURLConnection
。当
NSURLConnection
完成获取数据后,您将在其中查找任何IMG标记,并将它们修改为您想要的任何占位符。然后,您将使用
-loadHTMLString:baseURL:
将结果字符串加载到
UIWebView


当然,在iPhone上解析HTML不是一件小事,Javascript加载程序会给你带来麻烦,所以这不是一个完美的答案,但这是我所知道的最好的答案。

这真的会导致页面加载更快吗? 听起来这些图片仍在下载中,但我们只是没有将它们提供给UIWebView

或者应该先加载HTML文本吗?

继续罗布的回答。
我注意到,当加载htmlstring:baseURL:并始终返回NO时,webView:shouldStartLoadWithRequest:navigationType:会不断被调用。(我怀疑loadHTMLString调用了另一个shouldStartLoadWithRequest)

所以我要做的是交替返回是/否 我使用NSScanner解析HTML并更改src=”http://...“to src=”


webView:shouldStartLoadWithRequest:navigationType:在下载发生后被调用。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (pageHasNoImages==YES)
    {
        pageHasNoImages=FALSE;
        return YES;     
    }
    NSString* newHtml;
    NSString* oldHtml;
    NSData *urlData;
    NSURLResponse *response;
    NSError *error;
    urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    oldHtml=[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

    newHtml=[self.detail scannerReplaceImg:oldHtml]; // my own function to parse HTML
    newHtml=[self.detail scannerReplaceAds:newHtml]; // my own function to parse HTML
    if (newHtml==nil) 
    {
        NSLog(@"newHtml is nil");
        newHtml=oldHtml;
    }
    [oldHtml release];

    pageHasNoImages=TRUE;
    [web loadHTMLString:newHtml baseURL:request.URL];

    return NO;
}