I pode forçar todos os links em um WebView (ou WebFrame) a ser tratados como caminhos absolutos?

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

Pergunta

Então, eu estou trabalhando com o WebKit do - WebView e WebFrame. Eu uso um NSURLProtocol personalizado para recuperar o HTML para cada solicitação a partir de um banco de dados. O problema decorre do fato de que os links no HTML são todos relativos, quando eles realmente deve ser absoluta. Por exemplo, a página

foo/bar.html

Pode ter um link em que pontos a

foo/baz.html

O problema é que desde que o link é relativo, as extremidades solicitar até estar para

/foo/foo/baz.html

Até agora, eu tentei Para contornar isso comparando as duas URLs e tirando o prefixo comum - neste caso 'foo /' - deixando-me com foo / baz.html. Isso não funciona para todas as possibilidades, no entanto, especialmente quando há vários diretórios no caminho. Eu faço isso no "didStartProvisionalLoadForFrame:" método de frameLoadDelegate do meu WebView

.

Infelizmente, eu não tenho controle sobre o HTML que eu estou exibindo, assim modificando as ligações em si não é uma opção.

Foi útil?

Solução

Tente ser delegado a carga de recursos principal do quadro, e implementar webView:resource:willSendRequest:redirectResponse:fromDataSource: para modificar a URL que está sendo solicitado. Enviar relativeString a URL da solicitação para obter o URL relativo original, em seguida, usar -[NSURL initWithString:baseURL:] para criar uma nova URL com a mesma seqüência relativa contra a URL base correta.

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