Je souhaite saisir des caractères spéciaux (tels que 'ä', 'é', '£', etc.) dans une vue Web Android. Ces caractères ne sont pas inclus dans le KCM virtuel (carte de caractères clés). Je ne peux donc pas récupérer le code associé au personnage et créer un KeyEvent.Saisie de caractères spéciaux dans Android WebView
J'ai essayé différentes méthodes:
String t = "testàaâäù";
char[] charArray = t.toCharArray();
if (charArray.length > 0) {
KeyCharacterMap keyCharacterMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD);
KeyEvent[] events = keyCharacterMap.getEvents(charArray);
}
// events is null, because some characters aren't include in KCM
// it never works in any case
Avec des méthodes d'instrumentation:
instrumentation.sendStringSync("a"); // Display 'a'
instrumentation.sendStringSync("àâä"); // Display nothing
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H); // Display 'h'
// Instrumentation seems to use KCM for data entry
Avec ACTION_MULTIPLE KeyEvent:
KeyEvent event = new KeyEvent(SystemClock.uptimeMillis(), String.valueOf("aàâä"), 0, 0);
focusedView.dispatchKeyEvent(event);
// Doesn't work with WebView, but works with other components such as EditText.
// I get this error: Unimplemented WebView method onKeyMultiple called from: android.webkit.WebView.onKeyMultiple
Puis-je mettre en œuvre la méthode onKeyMultiple (WebView) pour traiter les données entrée? Y a-t-il une solution pour entrer des caractères spéciaux dans le webview? J'ai besoin d'une solution qui ne nécessite pas de root ou la création d'une disposition de clavier (l'utilisateur n'a pas à sélectionner le clavier).