2012-06-01 22 views
5

La pregunta suena rara, pero aquí está mi caso.Cerrar UIWebView usando javascript: window.close();

Tengo un UIWebView en mi UIView (hecho por [self.view addSubview:webView];) que ocupa la pantalla completa. Oculta intencionalmente el UIView antes de que UIWebView haga clic en una acción javascript:window.close();.

Cómo asocio JavaScript en la página UIWebView a la acción UIView, p. [webView removeFromSuperView];?

Respuesta

7

Esto es posible:

establecer la ubicación de algo con su propio esquema en la URL, es decir

document.location.href = "myscheme: // HacerAlgo"

Esto causará el método UIWebViewDelegate shouldStartLoadWithRequest: debe invocarse con un parámetro NSURLRequest cuyo esquema es "myscheme". Así que busca este esquema y extrae DoSomething y luego actúa en DoSomething, que en su caso sería llamar a eliminar de superView.

(En el dealloc UIWebView probable que tenga que asegurarse de que llame StopLoading)

+0

sonidos que iba a funcionar. Déjame hacer una prueba y contactarte chicos. – Raptor

+1

¡Éxito! En realidad, no es necesario usar el esquema de URL. Simplemente haga un patrón en URL, luego lea el patrón en '[Ruta NSURL]' por 'shouldStartLoadWithRequest:'. Maneje el patrón con lógica diferente (incluso puede pasar variables con cadena de consulta (de coz, los valores de POST no se pueden leer). – Raptor

Cuestiones relacionadas