Question

I want to be able to show keyboard on mobile browser (e.g. Android) after navigating to the page. I have already seen some workarounds:

Show virtual keyboard on mobile phones in javascript

Can I trigger Android soft keyboard to open via javascript ( without phonegap )?

Showing Android's soft keyboard when a field is .focus()'d using javascript

But all of these examples work only if user tap somewhere. It allows to trigger focus() from within the click(). Does someone know if there any way to do the same thing but without user clicking?

I've tried to trigger click programmatically but it also not working. http://jsfiddle.net/alex_myronov/e5JcP/10/

Was it helpful?

Solution

I managed to successfully open the virtual keyboard by just calling focus() method of the input.

It works in my app both on android 2.3 and 4.1.

I think the trick is that you have to wait untill the page is completly rendered before you call focus().

My app is using jquery mobile and I call focus() when the pageshow event is triggered:

$("#myPage").on("pageshow", function( event ) {
        $("#myPage").find('input:first').focus();
} );

Or maybe it's working because I'm in a phonegap app?

OTHER TIPS

My current answer to this is no, can't be done. The script that calls focus() click() on an input needs to be running with user context, ie. triggered by a user interaction. After fairly dedicated fiddling, I've found no way round this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top