Android的PhoneGap不接受9键

Android的PhoneGap不接受9键,android,cordova,Android,Cordova,我的基于PhoneGap的android应用程序有一个奇怪的问题。在某些屏幕上 9号键完全被忽略。这发生在我所有的安卓系统上 2.X设备。我尝试过PG的以前版本,发现 问题首先出现在v1.2中 下面是一个示例index.html文件的代码,该文件将重现该问题。在Android 2.2和2.3上,标记为“断开”的文本框不接受数字9作为输入 <!DOCTYPE html> <html> <head> <title>

我的基于PhoneGap的android应用程序有一个奇怪的问题。在某些屏幕上 9号键完全被忽略。这发生在我所有的安卓系统上 2.X设备。我尝试过PG的以前版本,发现 问题首先出现在v1.2中

下面是一个示例index.html文件的代码,该文件将重现该问题。在Android 2.2和2.3上,标记为“断开”的文本框不接受数字9作为输入

    <!DOCTYPE html>
    <html>
    <head>
        <title>Test</title>
        <style>
        body
        {
            margin:0;
            padding:0;
            font-size:20px;
        }

        input
        {
            height:20px;
        }

        #container_second
        {
            overflow:hidden;
            position:relative;
            width:100%;
            height:150px;
        }

        #container_second div
        {
            left: -2000px;
            position: absolute;
            -webkit-transform: matrix(1, 0, 0, 1, 2000, 0);
        }
        </style>
    </head>
    <body>
        <br />
        <div id="container_first">
            <div>
                Working Text: <br /><input type="text" /><br /><br />
                Working Tel: <br /><input type="tel" />
            </div>
        </div>

        <br /><br />

        <div id="container_second">
            <div>
                Broken Text: <br /><input type="text" /><br /><br />
                Broken Tel: <br /><input type="tel" />
            </div>
        </div>
    </body>
    </html>

试验
身体
{
保证金:0;
填充:0;
字体大小:20px;
}
输入
{
高度:20px;
}
#集装箱秒
{
溢出:隐藏;
位置:相对位置;
宽度:100%;
高度:150像素;
}
#货柜组第二组
{
左:-2000px;
位置:绝对位置;
-webkit变换:矩阵(1,0,0,1,2000,0);
}

工作文本:


工作电话:


断开的文本:


坏电话:

我也有同样的问题。事实证明,您需要通过config.xml文件中的API号指定Android SDK版本

加:

它可能与。出于某种原因,PhoneGap正在web视图的WebSettings上调用setNavDump。根据,setNavDump是一种过时的方法,因此如果禁用它,应该可以

一种方法是重写类中扩展DroidGap的init方法

    @Override
public void init() {
    super.init();       
    this.appView.getSettings().setNavDump(false);
}

如果不起作用,请尝试在现有的
onCreate
方法中的
loadUrl
调用之后添加它:

@Override
public void onCreate(Bundle savedInstanceState) {
    //... snip ...
    super.loadUrl("file:///android_asset/www/index.html", 12000);
    this.appView.getSettings().setNavDump(false);
    //... snip ...
}

我在eclipse中开发了一个phonegap应用程序(用于android)。我也有同样的问题。当我按7时,应用程序停止,当我按9时,应用程序在文本区域组件中不执行任何操作。这也是android版本2.2和2.3.3上出现的一个问题。在布局中,有一个结构,如框架->框架->线性布局。然后我移除了两个框架。我只是使用线性布局,然后问题就解决了。我可以按7和9键,应用程序中没有问题。我的意思是,您应该检查未使用的布局组件。

css的组合似乎导致了一些问题。如果您删除了上述所有css或只是
溢出:隐藏
,那么它会像预期的那样工作是的,但是css是一种重现问题的方式。似乎有多种方式导致此问题发生。使用这种特殊的CSS只是一种方法。我完全像这样包含它,希望它能帮助熟悉PhoneGap源代码的人诊断这个问题。我正在Eclipse中构建,所以我没有该文件。我在AndroidManifest.xml中指定了minSdkVersion,但它仍然无法正常工作。每当我在软键盘上输入数字7时,我的PhoneGap/Cordova 1.7应用程序在Nexus 7上崩溃,这就解决了问题。谢谢