I try to react to the on-screen keyboard in our web applications. Unfortunately there are some things complicating this:
First of all, the application has to run equally on mobile platforms (tablets) and desktops. Additionally scrolling the document/body is forbidden and to spice things up even more, landscape mode is mandatory on tablets.
So, if someone selects any input field, the on-screen keyboard opens up and blocks the sight on half of the page, therefor some inputs become invisible and I need to change that.
Unfortunately it seems, there is no event fired at all, which indicates, that half of the application just became invisible. I already checked scroll and resize events, but they didn't fire, too.
Of course, I could always react somehow as soon as I'm sure to be on a tablet. Probably 95% of the users will not attach a hardware keyboard anyway. But isn't there any cleaner way?
The API is supported for browsers on touch platforms that have virtual keyboards: Windows, Chrome OS and Android.
Unfortunately the answer here is a clear: NO. There are some related questions here with some further information and tricks:
screen styling when virtual keyboard is active
iPad Web App: Detect Virtual Keyboard Using JavaScript in Safari?
Android/iPhone webkit, event triggered on keyboard pop?
On Android (sorry iOS), the resize event will fire when the keyboard resizes your page. Add an onresize event handler on your window and adjust the scrolling as needed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With