Я хочу набрать специальные символы (например, «ä», «é», «£» и т. Д.) В веб-браузере Android. Эти символы не включены в виртуальную KCM (карта ключевых символов). Поэтому я не могу получить код ключа, связанный с символом, и создать KeyEvent.Ввод специальных символов в android WebView
Я попробовал различные методы:
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
Методами приборов:
instrumentation.sendStringSync("a"); // Display 'a'
instrumentation.sendStringSync("àâä"); // Display nothing
instrumentation.sendCharacterSync(KeyEvent.KEYCODE_H); // Display 'h'
// Instrumentation seems to use KCM for data entry
С 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
Могу ли я реализовать метод onKeyMultiple (WebView) для обработки данных запись? Есть ли решение для ввода специальных символов в webview? Мне нужно решение, которое не требует root или создания раскладки клавиатуры (пользователю не нужно выбирать клавиатуру).