I have a full-screen game in HTML+JavaScript, which uses the arrow keys as primary controls. This cannot be used on keyboardless Android devices (I haven\'t tested on iOS),
An alternate way would be to bind swipe events & keycodes to the same functions - so both would work at the same time (sure that depends if the game shall accept swipes - or has some joypad controls on screen).
This even covers the dis-advance mentioned in the answer's comments, I've just noticed.
In most cases on-screen tap-controls are too difficult to use (S-NES Emu).
The best ones I've used so far were the ones in Bard's Tale for Droid.
Tip: best for controlling directional movement in a game would be the tap-hold event. So one can tap-hold ... needs some invisible construction line between the cursor and the center of the screen - in order to measure the degrees for the vector of movement.
One could probably even control the speed by the value of the pressure - just currently not sure if the property can be accessed from within JavaScript - or if this only available in Android SDK?
In Parallel Kingdom one moves by single-tap (but the character isn't always in the middle of the screen, like it would be with the tap-hold method mentioned above).