События клавиш почти никогда не отправляются с программной клавиатуры, они используют более прямые методы.
То, как работает клавиатура на Android, связано с видом. В этом представлении должна быть реализована функция getInputConnection (), возвращающая объект, который позволит приложениям вызывать функции (через AIDL). Одна из этих функций вызывается для «клавиши действия» (кнопка «Готово»). В реализации InputConnection по умолчанию это вызовет прослушиватель, зарегистрированный в связанном представлении.
Поскольку вы имеете дело с веб-просмотром здесь, я не думаю, что есть способ сделать это напрямую. То, что вы можете попробовать, это создать подкласс WebView для ActionKeyWebView. Добавьте функцию для регистрации интерфейса слушателя ключа действия.
Переопределите getInputConnection, чтобы вернуть собственный подкласс InputConnectionWrapper, и оберните super.getInputConnection (). Затем переопределите executeEditorAction, чтобы вызвать любого слушателя, зарегистрированного для веб-просмотра. Это довольно много кода, но он должен работать.