Laden Sie die gesamte Webseite in iOS ohne Verwendung von ASIHTTPRequest herunter

8

Gibt es eine Alternative zu ASIWebPageRequest in der ASIHTTPRequest-Bibliothek, die ich zum Herunterladen einer vollständigen Webseite in iOS verwenden kann, einschließlich der CSS-, JavaScript- und Bilddateien usw.? Ich kann im AFNetworking Framework keine ähnliche Klasse finden und bisher waren meine Suchen nicht erfolgreich. Ich kann ASIHTTPRequest nicht verwenden, da ich es in keiner meiner Apps überhaupt zum Laufen bringen kann, keine Beispiele, die ich für iOS7 gefunden habe, und ich würde sowieso lieber etwas Neueres verwenden.

Ich möchte grundsätzlich eine ganze Webseite lokal in einem Verzeichnis auf dem iPhone / iPad speichern, damit ein Benutzer sie lokal bearbeiten und später das gesamte Verzeichnis an ihren Webserver senden kann. Der Benutzer muss die Webseite auch jederzeit in einem UIWebView anzeigen können.

Wenn dies nicht möglich ist, muss ich einfach die HTML-Datei herunterladen und dann analysieren, um die URLs externer Ressourcen zu finden, und diese dann separat herunterladen. Ich würde das lieber nicht machen, aber wenn ich dann muss, was ist die beste Bibliothek, um das zu erreichen?

Danke an jeden, der mir hilft!

    
David Omid 24.10.2013, 16:29
quelle

3 Antworten

2

Sie scheinen nach etwas wie wget zu suchen, aber ich bin mir nicht sicher, ob Sie das in iOS tun können.

Sie können die native Methode NSString stringWithContentsOfURL:encoding:error: verwenden, um den HTML-Code einer Webseite abzurufen.

Ссылка :

    
Mina 27.10.2013 08:33
quelle
1

Sie können alle von Ihrer App ausgehenden HTTP-Anfragen über ein benutzerdefiniertes NSURLProtocol abfangen. Sie müssen dieses Konzept erweitern, aber hier ist eine einfache Klasse, die, wenn sie in Ihr Projekt eingefügt wird, alle Anfragen abmeldet (z. B. von einem UIWebView).

%Vor%

Sie könnten dies erweitern und die Anforderungen der Protokollimplementierung tatsächlich ausführen (ein vollständigeres Beispiel finden Sie unter Ссылка ). Oder Sie können die Anfragen einfach verfolgen und später selbst herunterladen.

Es gibt keinen einfachen Weg, einen solchen Protokoll-Handler mit einer bestimmten Instanz eines UIWebView zu verbinden. Sie werden damit ALLE Anfragen in der App abfangen. (Achtung - in iOS7 können Protokolle für bestimmte NSURLSessions registriert werden; für diese wird ein global registrierter Protokollhandler nicht abgefangen.)

    
TomSwift 31.10.2013 22:01
quelle
1

Ich würde ein UIWebView verwenden und alle Anfragen zwischenspeichern, die es macht

    
Daij-Djan 27.10.2013 09:05
quelle