Swift iOS Cache WKWebView contenido para ver fuera de línea

Estamos tratando de guardar el contenido (HTML) de WKWebView en un almacenamiento persistente (NSUserDefaults, CoreData o archivo de disco). El usuario puede ver el mismo contenido cuando vuelve a ingresar a la aplicación sin conexión a Internet. WKWebView no usa NSURLProtocol como UIWebView (ver publicaciónaquí)

Aunque he visto publicaciones que "La caché de la aplicación sin conexión no está habilitada en WKWebView". (Foros de desarrollo de Apple), sé que existe una solución.

Aprendí dos posibilidades, pero no pude hacer que funcionen:

1) Si abro un sitio web en Safari para Mac y selecciono Archivo >> Guardar como, aparecerá la siguiente opción en la imagen a continuación. Para las aplicaciones Mac existe [[[webView mainFrame] dataSource] webArchive], pero en UIWebView o WKWebView no existe dicha API. Pero si cargo un archivo .webarchive en Xcode en WKWebView (como el que obtuve de Mac Safari), entonces el contenido se muestra correctamente (html, imágenes externas, vistas previas de video) si no hay conexión a Internet. El archivo .webarchive es en realidad un plist (lista de propiedades). Intenté usar un marco de Mac que crea un archivo .webarchive, pero estaba incompleto.

2) Obtuve el HTML en webView: didFinishNavigation pero no guarda imágenes externas, css, javascript

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

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

Estamos luchando durante más de una semana y es una característica principal para nosotros. Cualquier idea es realmente apreciada.

¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta