2010-06-14 2 views
1

오프라인에서 사용하기 위해 다운로드 한 로컬 파일 (응용 프로그램 NSBundle의 일부가 아님)을 표시 할 수 있도록 NSURL (경로 또는 경로 생성기 기능)을 포맷하는 방법은 무엇입니까? 아이디어는 HTML 파일을 걸러 내서 정리하고 iFoo 응용 프로그램의 특정 저장 영역에 숨긴 다음 나중에 UIWebView를 사용하여 표시하는 것입니다.HOWTO UIWebView를 사용하여 다운로드 한 파일을 나중에 표시 하시겠습니까?

다음으로, 일반적으로 iFoo (iPhone/iPad)의 파일 작업에 대해 RTFM으로갑니다. 그러나 빠른 시작 팁은 높이 평가됩니다.

답변

1

다운로드가 완료되면 문자열로 로컬 파일을 읽고 UIWebView의 loadHTMLString:baseURL:을 사용하여 해당 문자열에서 HTML을로드 할 수 있습니다. 상대 경로를 사용하고 올바른 값을 설정하십시오. baseURL :

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *yourFolderPath = [[paths objectAtIndex:0] stringByAppendingPathComponent: @"yourFolder"]; 
NSString *filePath = [yourFolderPath stringByAppendingPathComponent: @"yourFile.htm"]; 
NSString *fileContents = [NSString stringWithContentsOfFile: filePath]; 
NSURL *baseURL = [NSURL fileURLWithPath: yourFolderPath]; 
[yourWebView loadHTMLString: fileContents baseURL: baseURL]; 
+0

감사합니다. 매우 흥미 롭습니다. 그러나 HTML 파일과 관련 CSS (등)를 함께 디렉토리에 두는 편이 좋을 것입니다 (또는 iFoo가 dir/폴더 대신 사용하는 곳). 나는 실제 문제가 파일을 숨기고있는 것으로 추측하고 그 은신처에 경로명을 제공한다. 불행히도 나는 너무 무지합니다. (여전히 멋진 트릭이며 텍스트의 상대 경로에 대한 컨텍스트/폴더/디렉토리를 제공합니다.) – Roboprog

+0

@Roboprog 귀하의 문제를 해결하기 위해 제 답변을 편집했습니다. HTML 파일 내의 CSS 및 이미지에 상대 파일 경로를 사용해야하므로 UIWebView의 loadHTMLString의 baseURL을 설정하면 해당 파일이 가리키는 특정 폴더 내에서 파일을 검색 할 수 있습니다. – luvieere

+0

다시 한 번 감사드립니다. NSDocumentDirectory (아마도 이것은 "./Documents"와 같이 NSHomeDirectory 아래에 중첩되어 있습니다)는 NSURL을 사용하여 작업을 수행 할 수 있습니다. 이제 가짜 컨텐트를 생성하고 사용해보십시오! – Roboprog