2009-11-12 4 views
6

내 앱에는 URL을로드하는 uiwebview가 있습니다. 오프라인으로 볼 수 있도록 로컬로로드 된 페이지의 HTML을 저장하려면 다음 줄을 사용하고 있습니다.iphone uiwebview CSS 및 이미지가 포함 된 전체 페이지 다운로드

NSString* html=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"] 

문제는 나는 그가 온라인 인 것처럼 사용자가 페이지를 볼 수 있도록 HTML과 함께 또한 이미지와 CSS를 저장할 저장됩니다 문서 만 HTML입니다.

"웹 페이지 완성 저장"또는 브라우저에서 사용했던 것과 비슷합니다.

귀하의 도움에 감사드립니다.

답변

4

쉬운 방법은 없습니다. RegexKitLite (http://regexkit.sourceforge.net/RegexKitLite/index.html)를 사용하여 HTML을 정규 표현하고 .jpg, .gif, .png 및 .css 및 .js로 모든 URL을 걸러 내고 필요한 모든 것.

가 교대, 전화 :

NSString* imgUrls=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('img')"] 

또는 같은 것을, 나는 어떤 자바 스크립트 재능 해요 ... 그리고 어떤 반환 모든 처리)

죄송합니다. 그것은 rearheinie의 고통입니다.

편집 : 모든 IMG 년대 아이폰에

저장, 또한 HTML 파일을 저장합니다. 페이지를 다시로드 할 때, 문자열로 파일에서 HTML을로드 한 후 HTML 문자열을로드

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 

를 사용합니다. baseURL은 웹 뷰가 직접 가져 오는 html 문자열을 상상할 디렉토리 또는 사이트를 지정하는 데 사용됩니다. 모든 URL은 그에 상대적입니다.

물론 이것은 절대 URL에 대해서는 상대적으로 잘 작동하지 않습니다. 그래서, HTML 파일에서, 원숭이 것들까지합니다

<img src="http://google.com/f/r/i/g/img.gif"> 

이 확인 될 때 ​​:

<img src="f/r/i/g/img.gif"> 

다시 말하지만,이 모든 솔루션은 거름 투성이입니다. 기존 오픈 소스 재귀 html 스파이더를 살펴볼 수 있습니다. 나는 wget이 당신이 원하는 것을한다고 생각하지만, 아이폰 용으로 컴파일 할 수 있을지는 의문의 여지가 없다.

+0

빠른 응답 내가 그 고통을 알고 주셔서 감사합니다 : S 하지만 난 아직도 이해가 안가 .. 난 후 무엇을 모든 IMGs 태그를 가지고 있다면? - 오프라인에서 볼 수있게하려면 어떻게해야합니까? 자세한 내용을 알고 싶다면 ... –

+0

추가 정보. 내가 이미지 부분을 얻을 생각 –

+0

.. 하지만 태그 이름은 물론 CSS 하지 않기 때문에 u는 자바 스크립트 와 CSS 파일의 URL을 얻는 방법에 대해 다시 한번 감사드립니다! –

0

확인 시간이 없었지만 ASIWebPageRequest 솔기가 매우 유망했습니다. 그것은 "하나의 문자열에 완전한 웹 페이지를 저장하거나 페이지에서 참조 별도의 파일에서 각 외부 자원과"

ASIWebPageRequest 1

수있는 상태

내 프로젝트 중 하나에 그것을 사용하는 것입니다, 그런 다음 스레드를 업데이트하십시오.

Gonso

관련 문제