Swift-iOS-Cache WKWebView Inhalte für die offline-Ansicht

Versuchen wir speichern die Inhalte (HTML) von WKWebView in einem persistenten Speicher (NSUserDefaults, CoreData-oder disk-Datei). Kann der Benutzer sehen den gleichen Inhalt, wenn er wieder in die Anwendung ohne internet-Verbindung. WKWebView nicht NSURLProtocol wie UIWebView (siehe post hier).

Obwohl ich gesehen haben, Beiträge, die "offline application cache ist nicht aktiviert in WKWebView." (Apple dev-Foren), weiß ich, dass eine Lösung existiert.

Ich gelernt habe, zwei Möglichkeiten, aber ich konnte nicht machen Sie zu arbeiten:

1) Wenn ich öffnen Sie eine website in Safari für Mac und wählen Sie Datei >> "Speichern unter" erscheint die folgende option im Bild unten. Für Mac-apps vorhanden [[[webView mainFrame] dataSource] webArchive], aber auf UIWebView oder WKWebView es gibt keine solche API. Aber wenn ich es laden ein .webarchive-Datei in Xcode auf WKWebView (wie die, die ich erhielt von Mac-Safari), dann wird der Inhalt richtig angezeigt (html-externe Bilder, video-Vorschau), wenn es keine internet-Verbindung. Die .webarchive-Datei ist eigentlich eine plist (property list). Ich habe versucht, ein mac-framework erstellt wird .webarchive-Datei, aber es war unvollständig.

Swift-iOS-Cache WKWebView Inhalte für die offline-Ansicht

2) ich obtanined den HTML-Code in webView:didFinishNavigation aber es speichert keine externen Bilder, css, javascript

 func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {

    webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",
        completionHandler: { (html: AnyObject?, error: NSError?) in
            print(html)
    })
}

Wir kämpfen, über eine Woche und es ist ein wesentliches Merkmal für uns.
Jede Idee wirklich dankbar.

Danke!

  • Hallo Cristi..hast du es geschafft, den cache der HTML-Code für die offline-Anzeige in WKWebview?
  • Aktualisierungen auf dieser? Ich bin versucht, dieses problem zu lösen
  • Ich weiß, das ist Monate zu spät, aber was können Sie tun, ist die JS und die CSS in der HTML-Datei selbst (vorausgesetzt, Sie Steuern die Seiten, die Sie besuchen in der webview). dann outerHTML.toString() zurück Sie alle. Nachteil hier ist die Leistung laden von HTML, die ich gefunden habe, langsam zu sein. in der Hoffnung auf Verbesserung der Geschwindigkeit auf mein Ende .webarchive Lösung
  • keine news auf, die Frage ?
Schreibe einen Kommentar