Detectando cuando el widget de selección nativo se abre / cierra en UIWebView

Cuando el usuario hace clic en un cuadro de select en UIWebView , se muestra un popover nativo en la parte inferior de la pantalla con las opciones disponibles. El contenido de la página web se desplaza hacia arriba para dejar espacio para este popover.

Parece que no se dispara ningún evento DOM cuando ocurre este desplazamiento, aunque el valor de body.scrollTop sí cambia. ¿Hay alguna manera de detectar cuándo se abre el popover, o tenemos que usar setInterval para sondear y observar el cambio de scrollTop ?

2 Solutions collect form web for “Detectando cuando el widget de selección nativo se abre / cierra en UIWebView”

Me sorprende que el evento de desplazamiento no se active. MDN tiene una list de events a los que se puede vincular que podría ser de ayuda para usted.

Una idea rápida que salta a la vista es que puede vincularse al mouse y a los events de input / cambio en la selección y en sus callbacks determinar qué es scrollTop mientras el usuario interactúa con la selección. Si tiene varias selects que necesita rastrear, puede delegar los events en el cuerpo para evitar la creación de oyentes adicionales.

El sondeo funcionaría, pero sería mucho less eficiente que agregar algunos oyentes de events en la selección en sí, así que con suerte puedes encontrar un evento que funcione.

¡Espero que ayude!

Puede lograr esto estableciendo un oyente en el UIPicker con un delegado de WebView. Este oyente puede llamar a una function apropiada en su JS:

 class ViewController: UIViewController, UIWebViewDelegate { @IBOutlet weak var webView: UIWebView! ... // UIWebViewDelegate protocol for WebView load func webViewDidFinishLoad(webView: UIWebView!) { // Set observer for keyboard load event NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) } func keyboardWillShow(sender: NSNotification){ // Call JavaScript function in the WebView webView.stringByEvaluatingJavaScriptFromString("yourJSFunction()") } } 
  • ¿Cómo se intercepta la pulsación larga en los enlaces en UIWebView?
  • ¿Cuáles son algunos methods para depurar Javascript dentro de UIWebView?
  • ¿Cómo bloquear Javascript alert | confirm | promt en UIWebView antes de renderizado?
  • Desplazarse sobre el gráfico de Highcharts
  • Ejecutar JavaScript en UIWebView antes de ejecutar cualquier otro JavaScript
  • ¿Sugerencias sobre cómo comunicarse desde JS ejecutándose en un UIWebView a la aplicación obj-c de alojamiento?
  • Borrar cnetworkingenciales de UIWebView con JavaScript
  • Prevenir UIWebView para Reposicionamiento para campo de input
  • ¿Hay una política de dominios cruzados en UIWebView?
  • UIWebView loadHTMLString a veces no carga ni aplica CSS y JS
  • ¿Hay algún error al usar InnerHTML dentro de UIWebView dentro de una aplicación nativa de iPhone?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.