Iphone Safari ändert die Größe des Ansichtsfensters bei geöffneter Tastatur nicht

10

Mobile Safari aktualisiert die window.innerHeight nicht, wenn die Tastatur aufgeht. (zumindest in 9.3.5, und es gibt mehrere Antworten wie dies , mit Kommentaren, die sagen, dass IOS 8.2 einbrach)

Apple-Dokumentation sagt pflegte zu sagen, bevor sie es bearbeitet haben , dass window.innerHeight mit iOS 10 zurück sein wird.

  

In iOS 10 entsprechen WKWebView-Objekte dem systemeigenen Verhalten von Safari, indem sie ihre window.innerHeight-Eigenschaft aktualisieren, wenn die Tastatur angezeigt wird, und keine Größenänderungsereignisse aufrufen.

Ich muss wissen, was ich in der Zwischenzeit zu tun habe, um mit der iPhone-Safari fertig zu werden, indem ich einfach die Website aus der Ansicht drehe, statt die Größe zu ändern.

Ich habe eine Anwendung, die absolute Positionierung für alles verwendet, und hat ein div mit Überlauf zwischen der Kopfzeile und der Fußzeile.

%Vor%

Plunker hier.

Screenshots funktionieren wie erwartet auf Android:

funktioniert nicht wie erwartet auf dem iPhone:

Basiert auf dieser Antwort Ich habe eine native JS-Methode zur Feststellung, ob die iPhone-Tastatur geöffnet ist,

%Vor%

Aber das löst das Problem nicht wirklich, da sich die window.innerHeight nicht ändert, also weiß ich nicht, wie groß die Tastatur ist. Ich könnte einfach eine Liste von iPhone-Auflösungen und deren Tastaturhöhen machen und einfach eine schreckliche, hartkodierende Person sein ...

    
mtfurlan 09.09.2016, 18:33
quelle

1 Antwort

2

Safari 10 Docs

  

Safari und WKWebView auf iOS 10 aktualisieren die Eigenschaft window.innerHeight nicht, wenn die Tastatur angezeigt wird. In früheren iOS-Versionen aktualisiert WKWebView die Eigenschaft window.innerHeight, wenn die Tastatur angezeigt wird.

Scheint, dass Dokumente jetzt das entgegengesetzte Verhalten des von OP notierten

angeben     
blackmamba 13.11.2016 09:58
quelle

Tags und Links