2016-07-18 1 views
0

J'ai écrit une application électronique et mis en œuvre mes propres widgets d'entrée pour être utilisé avec mon application - optimisé pour l'entrée tactile mobile. Que ce soit une bonne idée en général ou non, cela ne devrait pas faire partie de cette discussion.Appli électronique: Désactiver clavier à l'écran Windows 10 Tablet

Mon problème maintenant est que lorsque j'installe mon application sur une tablette Windows 10, le système d'exploitation ouvre le clavier à l'écran chaque fois que je me concentre sur un champ de saisie.

Bien sûr, le clavier à l'écran peut être désactivé dans Windows lui-même - malheureusement, il ne semble pas fonctionner comme prévu ... Si j'éteins le clavier, il ne sera plus affiché n'importe où - Windows Explorer, navigateur - nulle part. Cela fonctionne comme prévu. Mais l'application électronique STILL l'ouvre même si j'ai ARRÊTÉ le service Windows correspondant. Donc, ma conclusion est que l'électron lui-même ouvre le clavier et ignore tout ce que le système lui dit à ce sujet. Je n'ai trouvé aucune documentation ou API pour désactiver cette fonctionnalité.

Est-ce que quelqu'un a une idée de comment je peux atteindre mon objectif?

Nous vous remercions à l'avance,

Patrick

+0

Comment l'utilisateur doit taper dans un champ de saisie sans clavier? –

+0

comme dit j'ai mis en place mes propres widgets d'entrée. une partie est un clavier personnalisé à l'écran. il est important que l'utilisateur devra utiliser ce widget et aucun autre (par exemple celui de l'OS) il y a des raisons à cela, mais les expliquer irait au-delà du but de ce fil de discussion. –

+0

Dans ce cas pourquoi utiliser un champ de saisie alors? Pourquoi ne pas simplement avoir une zone de texte en lecture seule et utiliser ces widgets pour mettre à jour le texte dans cette zone de texte? Une autre chose que vous pouvez faire est de désactiver tous les événements tactiles pour l'ensemble de l'application. Je peux fournir la réponse comment faire cela si vous voulez. Vous pouvez également écouter les événements tactiles sur cette boîte de saisie et 'preventDefault()' sur eux pour qu'ils ne se mettent pas en bulles –

Répondre

1

Malheureusement j'ai découvert par moi-même maintenant, que ce n'est pas possible actuellement. Après avoir étudié un certain code source d'électrons et de chrome j'ai réussi à trouver l'endroit où le clavier est ouvert, ce qui se trouve être dans la mise en œuvre de chrome des champs de texte. Afin de soutenir une telle fonctionnalité dans l'électron, il faudra d'abord une option dans le chrome pour désactiver complètement le clavier à l'écran, ce qui n'est pas le cas pour le moment, malheureusement. Si cette fonctionnalité était implémentée, l'électron pourrait implémenter cette option et la passer au chrome. J'ai commencé une discussion à ce sujet sur github, avec un peu de chance, les gens vont augmenter le problème et chrome va étendre son code en conséquence. Pour ceux qui ont désespérément besoin d'une solution de contournement: La seule chose que j'ai pu trouver après avoir vérifié le code source est de mettre un "readonly" sur mes champs d'entrée, car chrome n'ouvrira pas le clavier sur les champs en lecture seule. L'inconvénient, bien sûr, est que vous ne serez plus en mesure d'utiliser le clavier pour ces champs, en plus, le curseur clignotant ne s'affichera pas, donc il semble étrange de travailler avec.