Hi Floh and thanks for your feedback! This is exactly what I attempted to do, indeed it doesn't sound reliable to try and reuse the browser's keyboard.
I made tests on Android with Chromium and Firefox, and I notice a few differences: - No security issues with offscreen text input (using top:-100px) (iOS-specific issue?) - No issues with triggering the focus/keyboard programmatically, e.g. from a setTimeout (iOS-specific issue?) - In your Amstrad demo, I can't type any letter (the completion/composition system gets in the way AFAICS); I attempted to always clear the text input to compensate, but I got dup events in Firefox More details at https://github.com/emscripten-ports/SDL2/issues/80 <https://github.com/emscripten-ports/SDL2/issues/80> Arrows/Escape are a different issue, I'm not trying to emulate a full keyboard, but I'd like to support the SDL TextInput API. Maybe just display the HTML text input and send a single input event with the full text line when pressing Enter... Cheers! Beuc On 20/06/2020 22:35, Floh wrote: > > What's your experience with mobile webapps and keyboard support? > > It massively *sucks* :D > > I explored a "solution" which involves a hidden HTML text field, > focusing that text field to bring up the keyboard, and unfocusing it > to hide the keyboard again. It kinda works, but it has all sorts of > problems: > > - the helper text field cannot be outside the visible area for > "security reasons" or hidden, so you'll may see a blinking cursor > somewhere overlayed over your WebGL canvas > > - showing the keyboard must be initiated from inside a Javascript > input handler, so you can't open it programmatically, but only on user > input (such as the user tapping the screen) > > - I remember some weird problems on different browsers or platforms of > the keyboard either overlaying the page, or scrolling the page up, or > even shrinking the WebGL canvas while the keyboard appears > > - don't expect it to work for more then 6 six months after a browser > update breaks something, or on any browser, basically each browser > needs specific workarounds and hacks. > > You can check out my attempts here: > > https://floooh.github.io/tiny8bit/cpc.html > > Tap the screen to bring up the keyboard. It seems to work on iOS, but > it's broken on Android last I checked... > > For those 8-bit emulators I came to the conclusion that it is better > anyway to draw the keyboard myself, because mobile keywords are > missing essential keys (such as the arrow keys, or an Escape key. > > Cheers! > -Floh. > > On Saturday, 20 June 2020 20:53:12 UTC+2, Beuc wrote: > > Hi, > > Mobile browsers are making progress with WebAssembly support and I > see more interest in handling on-screen keyboards in web games. > (typically so your game's port doesn't get the mobile player stuck > with a mere "whose your name" prompt). > > I explored 2 main ideas to make the virtual keyboard pop up in > SDL2 web applications in a generic way, typically on > SDL_StartTextInput <https://wiki.libsdl.org/SDL_StartTextInput> > (as Android SDL2 games do) but browsers don't make it easy: > https://github.com/emscripten-ports/SDL2/issues/80 > <https://github.com/emscripten-ports/SDL2/issues/80> > > At this point I'm not even sure at what layer it would be best to > implement virtual keyboard support (besides re-implementing it in > each application). > > What's your experience with mobile webapps and keyboard support? > > Cheers! > Beuc > > -- > You received this message because you are subscribed to the Google > Groups "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/emscripten-discuss/4c799ad0-0232-459c-8672-140cfdd9a077o%40googlegroups.com > <https://groups.google.com/d/msgid/emscripten-discuss/4c799ad0-0232-459c-8672-140cfdd9a077o%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/ff322b8e-ab29-d309-b588-61d0043c34fe%40beuc.net.
