2010-01-06 4 views
1

코코아로 프로그래밍 방식으로 웹 페이지를 하드 디스크에 Safari와 같은 웹 아카이브로 저장하고 싶습니다.코코아로 웹 보관함 저장

저는 어제 Apple의 예제 프로그램을 검색했지만 Apple Developer 페이지에서 webarchive 클래스의 클래스 참조 만 찾았습니다. 나는 webarchive 클래스로 약간 놀고, 불행히도 내 솔루션은 어떤 출력도주지 않는다.

NSURL *url = [NSURL URLWithString:@"http://www.google.de"]; 
NSURLRequest *urlRequest = (NSMutableURLRequest*)[NSURLRequest requestWithURL:url 
                    cachePolicy:NSURLRequestUseProtocolCachePolicy 
                   timeoutInterval:30.0]; 
NSData *urlData; 
NSURLResponse *response; 
NSError *error; 
urlData = [NSURLConnection sendSynchronousRequest:urlRequest 
           returningResponse:&response 
              error:&error]; 
WebArchive *wa = [[WebArchive alloc] initWithData:urlData]; 
NSData *waData = [wa data]; 
NSLog(@"%@", [[NSString alloc] initWithData:waData encoding:NSUTF8StringEncoding]); 

누군가 내 문제에 대한 해결책을 게시 할 수 있기를 바랍니다. 사전에

감사

마이클

+0

전체 웹 아카이브를 인쇄하면 실행 로그를 매우 어렵게 스팸하게됩니다. 대신 여기'% p' (포인터)를 사용하는 것이 좋습니다. 그리고 당신은 당신의 솔루션은 "당신의 솔루션은 어떤 출력도 내주지 않습니다"를 의미합니까? 로그 메시지가 실행 로그에 나타나지 않습니까? 그렇다면이 코드는 실행되지 않고 문제를 찾기 전에 * 어딘가에 연결해야합니다. –

답변

4

당신은 그것을 웹보기를 인스턴스화하고로드해야하지만이 꽤 쉽게 :

[[[webView mainFrame] dataSource] webArchive] 
0

나는 웹보기 그러나 나는 돈을 인스턴스화했습니다 이 시점에서 WebView가 webarchive를로드하려고합니다. webarchive로 웹 사이트를 다운로드하고 나중에 하드 디스크에 저장하고 싶습니다. 나중에이 웹 아카이브를로드 한 다음 WebView에 표시합니다.

+0

webview에서 페이지를 다운로드 한 다음 저장할 수 있습니다. 네가 뭘 원하지 않는지 모르겠다. –

+0

예, 윈도우에 WebView를 배치 할 필요는 없습니다. 프로그래밍 방식으로 웹 아카이브를 만든 다음 처리 할 수 ​​있습니다. –