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()") } } 
  • Hacer Selección y Agregar label dinámicamente en JavaScript
  • UIWebView obtiene url de image con elementFromPoint ()
  • Javascript en la callback de UIWebView a C / Objective-C
  • El almacenamiento local HTML 5 no funciona en UIWebView en iOS 6, 7 u 8
  • Restablezca los enlaces visitados en UIWebView, iOS 5
  • ¿Evitar que UIWebView cache los files de JavaScript?
  • Cargando una cadena HTML grande en UIWebView usando javascript
  • evento onscroll no se desencadena en el iPad después de un solo toque panorámica?
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.