Messagerie


Clavier virtuel Android avec une appli HTML5

Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 11 novembre 2017 à 15:25
Salut salut,

Alors voilà : j’ai une appli HTML5 avec un boite d’édition. J’ai fait en sorte que quand on clique autre part que sur la boite ou si on appuie sur entrée, la boite perd le focus. Mais si on lance l’appli sur un smartphone la touche entrée du clavier virtuel ne fait rien.
Une idée de comment je pourrais faire ?
890 messages

samedi 11 novembre 2017 à 17:00
et si tu remplaces ton clic sur la boite d'édition par un clic sur un sprite invisible qui englobe ta boite ?
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 11 novembre 2017 à 17:20
Cliquer autre part c’est bon, ça marche. c’est avec Entrée du clavier virtuel que j’aimerais faire.
890 messages

samedi 11 novembre 2017 à 19:10
ok pigé ! je le reproduis : la touche "aller vers" n'est pas une touche entrée en fait. je n'ai pas réussi à faire autre chose qu'un autre bouton "entrée" dans la frame pour perdre le focus. Par contre cliquer sur le bouton ferme bien ton clavier virtuel. Tu penses que cela peut te suffire ?
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 11 novembre 2017 à 19:29
Pas tellement, cliquer dans le cadre ou un autre bouton revient au même. Le plus intuitif pour l’utilisateur est de toucher la touche du clavier virtuel. C’est pour ça que j’aimerais que ce soit possible.
890 messages

dimanche 12 novembre 2017 à 09:07
j'ai checké le forum CT et je n'ai pas vu de possibilités : ils passent par un clavier à eux. désolé de ne pouvoir t'aider plus que çà !
Peut être qu'un développement est à prévoir pour faire une extension.
EDIT : je viens tout juste de trouver ceci :
https://stackoverflow.com/questions/11768356/need-table-of-key-codes-for-android-and-presenter

c'est la liste des codes touches pour android.
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 12 novembre 2017 à 10:15
Merci de ton aide.

Faire un clavier juste pour ça, ça ne vaut pas le coup à mon avis. Puis ça va amener pleins de difficultés, il faudrait tout repenser.
J’ai essayé une condition du style si la fin du text = $Newline, mais ça n’a pas marché.

Piste intéressante, il me reste à trouver comment l’utiliser (et faire ça pour d’autres smartphones…).
Modifié le dimanche 12 novembre 2017 à 10:19 par Seyjin
890 messages

dimanche 12 novembre 2017 à 10:36
Après peut être peux tu gruger :
1-si le edit box n'a pas été modifié depuis x seconde, faire un focus à off ?

2-Si le clavier virtuel est toujours placé au même endroit, capture le X de la touche écran. Si la touche "aller vers" qui remplace la touche entrée est toujours à droite des touches lettres, tu mets le focus à off quand le X de la touche dépasse la valeur maxi des positions des touches.

3-Ou enfin faire une détection de ce qui est entré dans la boite d'édition : si tu as un clic et que ce clic n'est ni une lettre en capitale, ni en minuscule, si un espace, ni un chiffre et que le nombre de caractère n'a pas changé (on retire donc espace et delete)etc,...alors il y a de forte chance que ce soit la touche "aller vers".

pour ma part, même si je trouve qu'aucune de mes propositions n'est propre et que c'est de la vulgaire bidouille, j'irais bien à la dernière soluce. Car j'ai bien peur qu'il y a autant de configuration de clavier virtuel que de version android, IOS et de taille écran.
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 12 novembre 2017 à 11:05
Je crois que les clicks sur le clavier virtuel ne sont pas pris en compte dans l’appli. Si c’était le cas on sortirait du focus au moindre clique à cause de l’événement qui fait perdre le focus en dehors de la boite.
890 messages

dimanche 12 novembre 2017 à 14:45
non je viens de tester et cela fonctionne parfaitement : testé sous samsung S2.
J'ai dit que si le caractère entré était "a", le focus devait être à off. Et c'est parfait.
Si tu veux réduire le nombre de cas "minuscule et majuscule", passe par un edit box intermédiaire pour convertir tout en maj ou en min et fais ton test dessus.
Bonne suite ;)
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 12 novembre 2017 à 15:13
Je n’ai pas du tout compris alors, et ne comprend toujours pas.
890 messages

dimanche 12 novembre 2017 à 16:43
je viens de modifier le code pour dire que si ce n'était pas les touches a, b ou c (j'ai fait court), alors il fallait mettre le focus de la boite d'édition à off. Et j'appuie sur la touche "aller vers"... et en effet, elle ne fonctionne pas comme les autres touches. Vraiment désolé !
EDIT : j'ai posé une question sur le forum CT en anglais (avec mon niveau d'anglais...). On verra bien si tu as une réponse.
cette appli est pour un de tes clients ? je veux dire par là que tu as une obligation de résultat "propre" ? ou c'est juste pour toi ?
890 messages

dimanche 12 novembre 2017 à 17:10
Ah j'ai peut être une piste : javascript.

document.onkeyup=function (e)
{
    e=e || window.event;
    var code=e.keyCode || e.wihch;
    alert('Vous avez appuyé sur la touche n°'+code);
}

Peut être que cela te permettra de récupérer le code de cette touche. (en espérant qu'elle renvoie bien un truc...)


Si c'est bon, fait un appel javascript à chaque touch screen pour intercepter le code de cette touche. Qu'en penses-tu ?
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 12 novembre 2017 à 17:40
C’est un projet perso, 10010.

J’ai essayé de comparer le dernier caractère dans la boite d’édition avec les lettres et chiffres, mais ça ne marche que si le curseur est à la fin.
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 12 novembre 2017 à 18:25
J’ai trouvé un truc \à/

J’ai utilisé un String Parser et remplace la sous-chaine $Newline par "". Ensuite je compare la boite au string parser.
Le souci c’est que la barre de défilement apparait.


Mouai, un peu nulle au finale. Vaut mieux voire avec le javascript. Si je trouves comment ça marche 😅
Modifié le dimanche 12 novembre 2017 à 19:23 par Seyjin
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 13 novembre 2017 à 16:35
Salut salut,

Grace à toi, arthurh, j’ai trouvé un moyen  :bravos

Quelque part dans la page j’ai ajouté une input avec l’id "unfocus".
<input id="unfocus"></input>

Puis j’ai modifié le script que tu as donné pour que quand c’est le touche entrée qui est pressée (valeur = 13), l’input "unfocus" prend puis perd le focus.
document.onkeyup=function (e)
{
  e=e || window.event;
  var code=e.keyCode || e.wihch;
  if (code == 13) {
  document.getElementById("unfocus").focus();
  document.getElementById("unfocus").blur();
  }
}

Merci beaucoup pour ton aide.
Pièces jointes
890 messages

lundi 13 novembre 2017 à 21:49
Coucou ;)
Bravo à toi, c'est toi qui a tout fait :)
heureux pour toi en tout cas ! ;)
Seyjin
1471 messages
Fusion 2.5 Dev
Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 13 novembre 2017 à 22:00
C’était galère, je pige que dalle en javascript. « [j’ai] tout fais », heu quand même pas.
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 25 visiteurs au total

Derniers messages