javascript - Android WebView HTML 输入按键不会触发

标签 javascript java android input webview

在某些设备(主要是三星,但也有其他设备)上以及以下组合:Android 版本、WebView 版本(即使使用 Android 7 中的常青 WebView)和键盘,存在许多问题:

  • keypress 没有触发
  • keydownkeyup 始终包含 keyCode=229
  • keypressinput 被触发但不包含键
  • textInput 未触发
  • maxlength 属性在 input[type=text] 上不被接受,而用户类型(允许超过 maxlength 个字符并且只有在提交表单时才会验证输入)

有没有办法解决这些问题?

最佳答案

我发现如果您扩展 WebView 并覆盖 onCreateInputConnection,所有这些问题都已解决:

public class WebViewExtended extends WebView {
    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        // This line fixes some issues but introduces others, YMMV.
        // super.onCreateInputConnection(outAttrs);

        return new BaseInputConnection(this, false);
    }
}

在覆盖 onCreateInputConnection 之前:

before

覆盖 onCreateInputConnection 后(g 被按下):

after

关于javascript - Android WebView HTML 输入按键不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45312553/

相关文章:

android - 相机 Activity 返回 null android

android - 我的 SD 卡在 4.4.2 上的位置在哪里?

Javascript - Math.floor 不起作用

java - Antlr 4 无法编译带参数的直接递归表达式

java - 如何在hibernate连接映射上指定固定参数?

java - java中字母表中的每个字符一个二维数组

javascript - 从模态表单中检索值并更新数据库 php

javascript - 使用什么框架来构建 Web 组件 : lit-element vs stencil vs SkateJS?

javascript - 使用带有纯 JavaScript 的按钮来回更改文本

android - fragment 内的VideoView导致黑屏闪烁