2010-01-06 8 views
1

Je voudrais enregistrer une page Web par programmation avec Cocoa sur le disque dur en tant qu'archive Web comme Safari.Enregistrer des archives Web avec Cocoa

J'ai recherché des exemples de programmes d'Apple hier, mais j'ai seulement trouvé une référence de classe sur la page Apple Developers pour une classe webarchive. Je joue un peu avec la classe webarchive et malheureusement ma solution ne donne aucune sortie.

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]); 

J'espère que quelqu'un pourrait poster une solution pour mon problème.

Merci à l'avance

Michael

+0

L'impression d'une archive Web entière va envoyer un gros spam dans votre journal d'exécution. Je suggère d'utiliser '% p' (pointeur) ici à la place. Et qu'est-ce que vous voulez dire "votre solution ne donne aucune sortie"? Le message de journal n'apparaît-il pas dans le journal d'exécution? Si c'est le cas, ce code ne fonctionne pas, et vous devez le relier quelque part avant de commencer à essayer de trouver des problèmes * dans * it. –

Répondre

4

Vous devez instancier un WebView et le charger, mais il est assez facile:

[[[webView mainFrame] dataSource] webArchive] 
0

J'ai instancier un WebView mais je ne Je ne veux pas que WebView charge l'archive web en ce moment. Je voudrais télécharger un site Web en tant que webarchive et l'enregistrer pour plus tard sur le disque dur. Plus tard que je charge ce webarchive et puis je le montrerai dans un WebView.

+0

Le webview va télécharger la page, puis vous pouvez l'enregistrer. Je ne suis pas sûr de ce que tu ne veux pas arriver. –

+0

Oui, vous n'avez pas besoin de mettre le WebView à l'écran dans une fenêtre, vous pouvez simplement l'utiliser par programme pour créer l'archive web et ensuite l'éliminer. –

Questions connexes