Como posso recuperar o HTML para ser carregado em um WebView (ou WebFrame) a partir de um armazenamento persistente local?

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

Pergunta

Então, eu tenho um monte de HTML está sendo armazenado em um banco de dados SQLite, e eles ligar para trás e para frente entre si. Quando um usuário clica para seguir um link, esse pedido tem de ser atendido por puxar o HTML apropriado do banco de dados. Isso poderia resultar em necessidade de carregar imagens, que também estão sendo armazenados no banco de dados (isso é uma coisa futuro; não há imagens, mas eu gostaria de ser capaz de usá-los). Eu olhei através da documentação WebKit, mas não consigo descobrir como fazer isso acontecer. Eu principalmente olhou para WebFrameLoadDelegate e WebResourceLoadDelegate, mas eu não vi um que me deixou pegar o pedido, pegue o conteúdo apropriado, e em seguida, enviar que, em uma resposta.

Ideias? Eu sou muito novo para Objective-C e Cocoa, mas eu acho que estou principalmente pegando o jeito das coisas.

Foi útil?

Solução

Como é que as páginas que são armazenados no banco de dados link para o outro? É provavelmente mais fácil se eles usam algum tipo de esquema de URL do cliente para começar.

A abordagem que eu usaria é implementar

-webView:resource:willSendRequest:redirectResponse:fromDataSource:

no seu delegado carga de recursos. Se a solicitação for para um recurso que é realmente localizado em seu banco de dados, retornar um new [1] NSURLRequest que utiliza um protocolo de URL personalizado que aponta para o recurso de banco de dados:

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

[1] A menos que você já está ligando entre seus recursos com o esquema de URL personalizado -. Então você pode pular esta etapa

Em seguida, implementar um NSURLProtocol personalizado para x-my-scheme que sabe como recuperar os dados do banco de dados. A amostra PictureBrowser dá um exemplo simples de como isso é feito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top