【问题标题】:Android Jelly Bean web view refuses input in text boxesAndroid Jelly Bean web 视图拒绝在文本框中输入
【发布时间】:2012-11-05 21:58:53
【问题描述】:

我在 Android Jelly Bean 版本中遇到了一个问题,即 Web 视图拒绝在文本框中输入。

尝试了一个只有一个输入标签的简单页面,如下所示。 在 android 浏览器中,页面工作正常,keypressblur 事件都会触发。 在 Web 视图中,只有 blur 事件会触发并且文本不会出现。

我尝试了下面给出的链接中提到的 webview 设置。

Why is Android WebView refusing user input?

对于具有“maxlength”属性的文本字段,果冻豆中存在一个已知缺陷。我没有使用最大长度。

<input id="phoneNumber" 
        name="phoneNumber" type="text" value="test" onblur="alert('lost focus');" onkeypress="alert('key press');"/>

谁能说明如何解决这个问题??

【问题讨论】:

  • 如果你删除onkeypress(可能还有onblur),它会起作用吗?
  • Eric,如果没有 onkeypress 和 onblur 处理程序,它们也无法工作。我在调试时添加了这些,并将它们保留在帖子中,因为我发现 onkeypress 不是从 webview 调用的,而它在浏览器中工作。

标签: android android-webview android-4.2-jelly-bean


【解决方案1】:

我有同样的问题和我的研究结果:

因为有些设备没有物理按钮,所以有带有相关按钮的导航栏。

因此,如果按下物理“后退”按钮,则会调用 onKeyDown 方法,我猜他们必须将此方法附加到导航栏上的“后退”按钮。

无论如何,当使用软键盘时,它会调用 onkeyDown 和 onkeyUp 方法,如果由于某种原因你覆盖它,你必须确保调用 super 以便它能够处理键事件:

@Override
public boolean onKeyDown(int keyCode,  KeyEvent event) 
{
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    {
        // Do Somthing...
           return true;
    }
    return super.onKeyDown(keyCode, event);
}

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多