Erkennen, wenn das native Auswahl-Widget in UIWebView geöffnet / geschlossen wird

8

Wenn der Benutzer auf eine select Box in UIWebView klickt, wird ein natives Popover am unteren Bildschirmrand mit den verfügbaren Optionen angezeigt. Der Inhalt der Webseite scrollt nach oben, um Platz für dieses Popover zu schaffen.

Es scheint, als würde kein DOM-Ereignis ausgelöst, wenn dieser Bildlauf stattfindet, obwohl sich der Wert von body.scrollTop ändert. Gibt es eine Möglichkeit zu erkennen, wann das Popover geöffnet wird, oder müssen wir setInterval verwenden, um nach " scrollTop changing" zu suchen und zuzusehen?

    
Matthew Gertner 05.06.2015, 16:15
quelle

2 Antworten

3

Ich bin überrascht, dass das Scroll-Ereignis nicht ausgelöst wird. MDN verfügt über eine Liste von Ereignissen , die für Sie hilfreich sein können.

Ein schneller Gedanke, der zu mir herausspringt, ist, dass Sie an den MouseUp binden und Ereignisse in der Auswahl eingeben und ändern können und in ihren Rückrufen bestimmen, was der ScrollTop ist, wenn der Benutzer mit der Auswahl interagiert. Wenn Sie mehrere Auswahlen haben, die Sie verfolgen müssen, können Sie die Ereignisse an den Text delegieren, um zu vermeiden, dass zusätzliche Listener erstellt werden.

Polling würde funktionieren, aber es wäre viel weniger effizient, als einige Event-Listener auf das select selbst zu setzen, also hoffentlich können Sie ein Ereignis finden, das funktioniert.

Hoffe das hilft!

    
Benjamin Solum 11.06.2015, 17:16
quelle
0

Dies erreichen Sie, indem Sie einen Listener auf dem UIPicker mit einem WebView-Delegaten einrichten. Dieser Listener kann dann eine entsprechende Funktion in Ihrem JS aufrufen:

%Vor%     
teacup 17.06.2015 02:25
quelle

Tags und Links