2010-01-06 49 views
1

我想用Cocoa以編程方式將網頁保存到硬盤中,像Safari這樣的網絡存檔。用可可保存網絡存檔

我已經從蘋果昨天搜索了任何示例程序,但我只在Apple開發人員頁面上找到了一個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'(指針)。你的意思是「你的解決方案不給任何輸出」?日誌消息是否未出現在運行日誌中?如果是這樣的話,這段代碼沒有運行,並且在開始嘗試在* it中查找問題之前,您需要將它連接到某處。 – 2010-01-07 07:25:02

回答

4

你需要實例化的WebView並加載它,但這是很容易的:

[[[webView mainFrame] dataSource] webArchive] 
0

我已經實例化的WebView,但我不不希望WebView現在加載webarchive。我想下載一個網站作爲一個網頁存檔,並保存在硬盤上。稍後我加載這個webarchive,然後我會在WebView中顯示它。

+0

webview將下載頁面,然後您可以保存它。我不確定你不想發生什麼。 – 2010-01-06 14:38:23

+0

是的,您不需要將WebView放置在窗口中,您可以通過編程方式使用它來創建Web存檔,然後將其處理掉。 – 2010-01-07 00:37:48