2014-03-01 2 views
1

현재 다운로드 진행 상태에 대한 상태 업데이트를 검색하기 위해 NSURLSession을 사용하여 웹 페이지를 다운로드하려고합니다. 불행히도 웹 페이지를 다운로드 한 후 웹 페이지를로드 할 때 시각적 인 문제 (누락 된 이미지, 누락 된 자바 스크립트, 누락 된 스타일 등)가 발생하여 웹 페이지가 깨져서 보이지 않게됩니다. webView에 직접로드 할 때 모든 것이 올바르게로드됩니다. 페이지가로드되는 동안 전체 웹 페이지를로드하고 로딩 바를 표시 할 수 있도록 웹 페이지의 모든 부분을 다운로드하여로드하는 방법 (또는 누락 된 사항)이 있는지 알고 싶습니다.NSURLSession이 전체 웹 페이지를 다운로드하지 않습니다.

- (void)loadRequest:(NSURLRequest *)request 
{ 
    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    self.urlSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 
    self.downloadTask = [self.urlSession downloadTaskWithRequest:request]; 
    [self.downloadTask resume]; 
} 

    - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)downloadURL 
{ 
    [_webView loadData:[NSData dataWithContentsOfURL:downloadURL] MIMEType:downloadTask.response.MIMEType textEncodingName:downloadTask.response.textEncodingName baseURL:nil]; 
} 
+0

내 전체 게시물을 읽지 않았습니다. 위에서로드 진행률 표시 막대를 표시 할 수 있기를 원합니다. 따라서 왜이 방법을 사용하고 있습니까? 이 방법론을 사용하여 모든 추가 파일을 검색하는 방법을 알아야합니다. 로딩 속성은 IMO를 얻는 것처럼 쓸모가 없습니다. 다운로드 상태를 제공하지 않으며 JavaScript 컨텐츠가로드되는 경우에도로드가 완료되었음을 알립니다. – TheCodingArt

답변

0

비슷한 문제 (이미지 누락 등)가있었습니다. baseURL을 제공해야합니다. 시도 :

[_webView loadData:[NSData dataWithContentsOfURL:downloadURL] MIMEType:downloadTask.response.MIMEType textEncodingName:downloadTask.response.textEncodingName baseURL:downloadTask.response.URL]; 
0

당신이 해결 방법의 일종을해야 로딩 표시 줄을 표시하려면이 다운로드되고있는 자원의 진행 상황을 알 수 없기 때문에.

많은 앱이 진행중인로드가 있다는 것을 시뮬레이션하기 위해 트릭을 사용합니다. 다음은 간단한 아이디어 예입니다.

  • 진행률 30 %를 1 초 동안 표시합니다.
  • 요청이 완료되지 않은 경우 진행률이 완료 될 때까지 진행률을 90 %로 표시하십시오.
  • 요청이 완료되면 진행률을 100 %로 애니메이션하십시오.

이 오픈 소스 라이브러리에서 어떻게 작동하는지 확인할 수 있습니다. 당신은 비슷한 방식으로 그것을 할 수 있습니다. https://github.com/ninjinkun/NJKWebViewProgress

관련 문제