PhoneGap for Android不接受9键

时间:2012-03-20 05:13:04

标签: android cordova

我在基于PhoneGap的Android应用程序中遇到了一个奇怪的问题。在某些屏幕上, 数字9键完全被忽略。这发生在我的所有Android上 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>

3 个答案:

答案 0 :(得分:17)

可能与this issue有关。出于某种原因,PhoneGap在Web视图的WebSettings上调用setNavDump。 setNavDump是一个根据android docs的过时方法,所以如果你禁用它就应该没问题。

一种方法是覆盖扩展DroidGap的类中的init方法

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

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

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

答案 1 :(得分:2)

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

添加:     <preference name="android-minSdkVersion" value="8" />

答案 2 :(得分:0)

我在eclipse中开发了一个phonegap应用程序(用于android)。我有同样的问题。当我按下7时,应用程序停止,当我按下9时,应用程序在文本区域组件中不执行任何操作。它也是一个问题出现在Android版本2.2&amp; 2.3.3。在布局中,存在诸如frame-&gt; frame-&gt;线性布局的结构。然后我删除了两个帧。我刚刚使用了线性布局,然后解决了问题。我可以按7&amp; 9,应用程序没有问题。我的意思是,你应该检查未使用的布局组件。