PhoneGap for Android不接受9键

jms*_*ish 11 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>
Run Code Online (Sandbox Code Playgroud)

Jas*_*tas 17

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

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

    @Override
public void init() {
    super.init();       
    this.appView.getSettings().setNavDump(false);
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 每当我在软键盘上输入数字7时,我的PhoneGap/Cordova 1.7应用程序就会在Nexus 7上崩溃,这就解决了这个问题.谢谢! (3认同)