¿Cómo puedo recuperar el código HTML para ser cargado en un WebView (o WebFrame) desde un almacén persistente local?

StackOverflow https://stackoverflow.com/questions/1169320

Pregunta

Por lo tanto, tengo un montón de HTML se almacena en una base de datos SQLite, y que enlace de ida y vuelta entre ellos. Cuando un usuario hace clic en un vínculo, esa solicitud, necesita ser reparado tirando del HTML correspondiente de la base de datos. Esto podría resultar en necesidad de cargar las imágenes, que también están siendo almacenados en la base de datos (esto es una cosa futura, no hay imágenes todavía, pero me gustaría ser capaz de utilizarlas). He mirado a través de la documentación de WebKit, pero no puedo encontrar la manera de hacer que esto suceda. He mirado en su mayoría WebFrameLoadDelegate y WebResourceLoadDelegate, pero yo no vi una que me permitiera coger la solicitud, agarro el contenido apropiado, y luego envía de que en una respuesta.

Ideas? Soy bastante nuevo en Objective-C y Cocoa, pero creo que estoy sobre todo conseguir la caída de las cosas.

¿Fue útil?

Solución

¿Cómo funcionan las páginas que se almacenan en el enlace de la base de datos el uno al otro? Es probablemente más fácil si utilizan algún tipo de esquema de URL del cliente para empezar.

El enfoque que yo usaría es implementar

-webView:resource:willSendRequest:redirectResponse:fromDataSource:

en su delegado carga de recursos. Si la solicitud es para un recurso que se encuentra realmente en su base de datos, devolver un nueva [1] NSURLRequest que utiliza un protocolo URL personalizada que apunta a la base de datos de recursos:

x-my-scheme:///table/row

[1] A menos que ya está vinculando entre sus recursos con el esquema de URL personalizada -. Entonces puede saltarse este paso

A continuación, aplicar una costumbre NSURLProtocol para x-my-scheme el que sabe cómo recuperar los datos de la base de datos. La muestra PictureBrowser da un ejemplo sencillo de cómo se hace esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top