2010-04-08 2 views
3

UIWebView에서로드하려는 웹 사이트가 있지만 이미지가 가득 차고로드하는 데 오래 걸립니다. 이미지는 쓸모가 없으며 iPhone에서만 사용하기 편리합니다. 사이트의 실제 코드를 변경할 수 없도록 웹 사이트를 소유하고 있지 않습니다.이미지를 UIWebView에서로드하는 것을 중지하십시오.

웹 페이지는 ASP.NET과 AJAX (외부 파일 필요)가있는 웹에 많이 링크되어 있으므로 HTML 문자열을로드 할 수 있다고 생각하지 않습니다.

이미지를 모두로드하는 것을 중지하고 싶습니다. 어떻게 그들을 차단합니까? 어떻게 든 HTML 코드를로드로 변경하거나 이미지로드를 차단 하시겠습니까?

답변

2

나는 3 개의 생각이있다. // URL을 :

  1. 처음
  2. 그냥 HTML을 다운로드하고 파일을 사용하여로드 다운로드 하여 HTML에게 HTML
  3. 필터를 직접 필터링 프록시를 사용

    . 이것은 대부분의 가능성의 이미지 참조가 해결되는 것을 방지 할 수 있습니다 - 그것은 사방
+0

문제는 이전 페이지에서 입력 한 내용을 기반으로하는 콘텐츠가있는 일련의 동적으로로드 된 페이지입니다. 따라서 다운로드하고 링크하는 것은 선택 사항이 아닙니다. –

+0

그런 다음 필터링 프록시를 사용합니다. 웹 브라우저에서 광고 차단기를 사용하는 것과 매우 유사합니다. – sylvanaar

+0

어떻게 구현할 것입니까? –

1

을 추악한 사각형을 떠나 불구하고있는 UIWebView 위임 방식이 작동하지 않습니다, 당신 말이 맞아! 새로운 답변 :

오른쪽, UIWebView에서 오는 NSURLRequest을 잡으려면 한 단계 더 자세해야합니다. 당신이 참조하고있는 블로그는 NSURLCache을 사용합니다 나는 이것이 좋은 시작점이라고 생각 :

당신이 요청을 피하고 싶은 경우 -(NSURLCacheResponse*) cachedResponseForRequest:(NSURLRequest*) request

를 오버라이드 (override) 다음 NSURLCache를 서브 클래스 및하려고 했나 수행 중이면, 뭔가를 반환해야합니다 (NSURLCachedResponse). 예를 들어, 앱에서 정적으로 정의 된 이미지 (크기가 0,0 인 PNG 일 수 있음)를 가져올 수 있습니다.

nil을 반환하면 요청이 수행됩니다.

이 접근 방식을 사용하여 UIWebView에 로컬 캐시가 채워지도록합니다. 이 여기에 대한 내 자세한 조 답변을 참조하십시오 :

How to save the content in UIWebView for faster loading on next launch?


잘못된 첫 번째 대답을 :/

UIWebView (UIWebViewDelegate)을 대리인으로 자신을 추가합니다. 요청이 당신이 다운로드 피하고 싶은 이미지에 관련이 있는지

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

그냥 확인하십시오 UIWebView 시도로드 할 것을 각 이미지에 대한

는 delagate는 호출 한 다음 콜백을 가져옵니다.이 경우 을이 콜백에 반환하면 이미지가 UIWebView에로드되지 않습니다.

이 방법을 사용하면 서버 측에서 변경할 필요가 없습니다.

는 이미지를로드하려고 할 때 NO 반환하는 웹보기의 대리자 webView:shouldStartLoadWithRequest:navigationType:을 사용하지 :

+0

나는 그것을 시도했지만 페이지 자체가로드 될 때만 호출한다. 페이지 요소 중 어느 것도 거기를 통과하지 않습니다 (이미지, JS, CSS ...) –

+0

맞아요, 다른 대답을 설명했습니다. 건배. – yonel

+0

귀하의 대답은 사실입니다. 내 요구 사항은 모든 URL이 이미지가 아닌 텍스트 만 표시하는 webview에로드 될 때입니다. 어떻게하면 webview 요청에 IMAGE URL을 얻을 수 있습니까? –

0

나는 시도하는 다른 옵션을 제안합니다.

+0

당신의 대답은 사실입니다. 내 요구 사항은 모든 URL이 이미지가 아닌 텍스트 만 표시하는 webview에로드 될 때입니다. 어떻게 webview 요청에 IMAGE URL을 얻을 수 있고 그것을 멈출 수 있습니다. –

0

다음 코드 줄을 사용하면 WebView로드를 중지 할 때마다 사용할 수 있습니다.

[webView stopLoading];

관련 문제