Pergunta

É possível iniciar um evento quando um UIWebView (iPhone) tem carregamento terminado o URL.

Como posso saber, a URL atual do UIWebView?

Foi útil?

Solução

Sim, isso é possível. Use o protocolo UIWebViewDelegate e implementar o seguinte método em sua delegado:

- (void)webViewDidFinishLoad:(UIWebView *)webView

Se quiser que o URL, você pode obter a última solicitação usando o request propriedade:

webView.request.URL

Outras dicas

Nenhuma das soluções encontradas funcionou para mim.

Então eu encontrei este exemplo que, pelo menos, funciona muito melhor do que qualquer outra solução que eu encontrei no Google / StackOverflow.

UIWebView-load-conclusão-tracker

método muito simples:

Passo 1:. Set UIWebViewDelegate delegado no arquivo de cabeçalho

Passo 2: Adicionar seguinte método webViewDidFinishLoad para obter URL atual de webview

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"Current URL = %@",webView.request.URL);

    //-- Add further custom actions if needed 
}

A resposta de Pascal para a parte "obter a URL" é bom.

No entanto!

De documentação do UIWebViewDelegate, da Apple: "WebViewDidFinishLoad: enviados após uma vista teia terminar o carregamento de um quadro."

Quadro! = Página.

webViewDidFinishLoad é chamado quando a página é "feito de carregamento". Ele também pode ser chamado muitas vezes antes disso. carregamento da página de Amazon.com pode gerar uma dúzia de chamadas para webViewDidFinishLoad.

Se você controlar o código fonte da página, então você pode fazer um teste de carga para ele, e ele vai trabalhar, para esse caso. Se você só se preocupam com sendo chamado "depois que a página é feito o carregamento", então webViewDidFinishLoad é adequada.

Para páginas arbitrárias, com JavaScript arbitrário, banners carregamento de anúncios em perpetuidade, ou deslocamento automático banners, ou a implementação de um jogo de vídeo, a própria idéia de uma página a ser "feito o carregamento" é equivocada.

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