PhoneGap для Android не принимает 9 клавиш - PullRequest
11 голосов
/ 20 марта 2012

У меня странная проблема в приложении Android на базе PhoneGap. На некоторых экранах клавиша № 9 полностью игнорируется. Это происходит на всех моих Android 2.X устройства. Я пытался с предыдущими версиями PG и обнаружил, что проблема впервые возникла в версии 1.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 ]

17 голосов
/ 03 апреля 2012

Это может быть связано с этой проблемой . По какой-то причине PhoneGap вызывает setNavDump в веб-настройках веб-представления. setNavDump - это устаревший метод в соответствии с документами для Android , поэтому с вами все будет в порядке, если вы отключите его.

Один из способов сделать это - переопределить метод init в вашем классе, который расширяет DroidGap

    @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 ...
}
2 голосов
/ 02 апреля 2012

У меня была такая же проблема. Оказывается, вам нужно указать версию Android SDK через номер API в файле config.xml

добавить: <preference name="android-minSdkVersion" value="8" />

0 голосов
/ 09 мая 2013

Я разработал приложение PhoneGap в Eclipse (для Android).У меня такая же проблема.Когда я нажал на 7, приложение остановилось, а когда я нажал на 9, приложение ничего не делает в компонентах текстовой области.Это было также проблема появляется на Android версии 2.2 и 2.3.3.В макете была такая структура, как frame-> frame-> linear layout.А потом я удалил оба кадра.Я просто использовал линейное расположение, и тогда проблема решена.Я могу нажать на 7 и 9, и в приложении нет проблем.Я имею в виду, вы должны проверить неиспользуемые компоненты макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...