如何在WebView中的onCreateInputConnection内输入?

时间:2017-01-31 13:11:28

标签: android webview

我的应用程序的摘录加载了一个HTML - 我无权更改 - 有三个输入:电子邮件,密码和WebView上的验证代码。最后一个将永远是数字。我想只为最后一个输入元素显示数字键盘。我是通过扩展WebView类并重写此方法来实现的,如下所示:

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        BaseInputConnection ic = new BaseInputConnection(this, true);
        outAttrs.inputType = InputType.TYPE_CLASS_NUMBER; // Tells the keyboard to show the number pad
        return ic;
    } 

问题是,我不知道我可以检查哪个标志,以便区分我在HTML上的三个不同输入,所以我只能为验证代码输入元素运行此代码。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在javascript中捕获前焦点事件,存储即将获得焦点的字段ID,然后在onCreateInputConnection中使用该值来决定要显示的键盘类型。

如果您无权更改源html,可以注入自己的javascript来设置focusin处理程序。

例如;

<div class="post">
  <div id="hero">
    <img src="/images/{{ page.hero }}.jpg">
  </div>
  <div id="article">
    <h2>{{ page.title }}</h2>
    {{ page.content }}
  </div>
  <div id="sidebar">
    {% include sidebar.html %}
  </div>
</div>