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?
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?