0
votes

Masquer le clavier dans WebView pour des pages spécifiques

J'ai créé une application simple webview pour le travail pour laisser les travailleurs remplir des formulaires. À 2 points, ils doivent numériser des codes à barres (la tablette dispose d'un scanner intégré).

Mon problème est que le scanner nécessite la mise au point sur l'entrée et que le clavier souple se présentera, ce qui n'est pas nécessaire à ce stade et a l'air un peu déroutant.

J'ai essayé plusieurs approches trouvées sur Stackoverflow et Google pour masquer le clavier sans succès.

Le point est de masquer le clavier uniquement sur des pages spécifiques (où Le scanner est utilisé) et est toujours disponible sur d'autres pages, où il est nécessaire.

La page pour le webview est intégré dans html et < Code> JS . Donc, une solution JS pourrait fonctionner, mais je préférerais une solution réelle java .

code que j'utilise actuellement qui vérifie l'URL et essaie de masquer le clavier (sans effectif). Comme vous pouvez le constater, j'ai essayé plusieurs solutions mais aucune des tâches a fonctionné. xxx


0 commentaires

3 Réponses :


0
votes

dans le fichier manifeste.xml écrire ci-dessous le code

<activity
        android:name=".activity.MainActivity"
        android:windowSoftInputMode="stateHidden" />


2 commentaires

Cela ne cache-t-il pas le clavier du tout? Je veux juste le cacher sur des pages spécifiques.


Merci pour la mise à jour. Mais le problème est de ne pas vérifier l'URL (je le fais dans OnpageStarted , voir ci-dessus) mais pour trouver un moyen de désactiver complètement le clavier pour cette URL spécifique.



0
votes

Utilisez ce

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//hide keboard:
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
//and for show keyboard
imm.showSoftInput(myEditText, InputMethodManager.SHOW_IMPLICIT);


1 commentaires

J'ai aussi essayé cela aussi, jetez un coup d'œil à la première ligne de commentaire de mon code. Ou fais-je manquer quelque chose?



0
votes

Vous devez comprendre WebviewClient Code> Visitez Cette URL

1) Tout d'abord, vous devez ajouter de la page WebViewClient et lors de la modification de la page, vous pouvez obtenir une URL actuelle à Dépapoverrijusturlloading Code> Qui vérifiez l'URL actuelle et comparez-la avec votre URL et masquez le clavier p>

par exemple: p>

public static void forceHideKeyboard(Activity activity, EditText editText) {
    try {

        if (editText == null) return;

        if (activity.getCurrentFocus() == null
                || !(activity.getCurrentFocus() instanceof EditText)) {
            editText.requestFocus();
        }

        InputMethodManager imm = (InputMethodManager) activity
                .getSystemService(INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
        activity.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


1 commentaires

Merci pour l'aperçu. J'utilise déjà webviewClient et obtenez l'URL actuelle avec OnpageStarted (voir, Mon code ci-dessus) Le problème est de masquer le clavier, je ne peux pas obtenir de MEHTOD de travailler