Pregunta

¿Es posible iniciar un evento cuando un UIWebView (Iphone) ha terminado de cargar la URL.

¿Cómo puedo saber, la URL actual de la UIWebView?

¿Fue útil?

Solución

Sí, eso es posible. Utilizar el protocolo UIWebViewDelegate y aplicar el siguiente método en su delegado:

- (void)webViewDidFinishLoad:(UIWebView *)webView

Si desea que la URL, se puede obtener la última solicitud utilizando el request propiedad:

webView.request.URL

Otros consejos

Ninguna de las soluciones encontradas trabajó para mí.

Entonces me encontré con este ejemplo, que al menos funciona mucho mejor que cualquier otra solución que encontré en Google / StackOverflow.

UIWebView-carga-finalización-tracker

Método muy sencillo:

Paso 1:. Establecer UIWebViewDelegate delegado en el archivo de cabecera

Paso 2: Añadir webViewDidFinishLoad siguiente método para obtener la URL actual de webview

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

    //-- Add further custom actions if needed 
}

La respuesta de Pascal para el papel "conseguir la URL" está muy bien.

Sin embargo!

A partir de la documentación de UIWebViewDelegate, de Apple: "WebViewDidFinishLoad: Se envía después una vista web termina de cargar un marco."

Marco! = Página.

webViewDidFinishLoad se llama cuando la página se "realiza la carga". También se puede llamar varias veces antes de esa fecha. carga la página de Amazon.com pueden generar una docena de llamadas a webViewDidFinishLoad.

Si el control de la fuente de la página, a continuación, se puede hacer una prueba de carga para él, y que va a trabajar, para ese caso. Si sólo se preocupan por conseguir denominado "después de que la página se haya cargado", entonces webViewDidFinishLoad es adecuada.

Para las páginas arbitrarias, con JavaScript arbitrario, carga de banners publicitarios a perpetuidad, o el desplazamiento automático banderas, o de ejecución de un videojuego, la idea misma de una página que se está "terminado de cargar" está equivocada.

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