PhoneGap для Android не принимает ключ 9
У меня странная проблема в Android-приложении на базе Android. На некоторых экранах
ключ номер 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>
Ответы
Ответ 1
Это может быть связано с этой проблемой. По какой-то причине PhoneGap вызывает setNavDump в веб-представлении WebSettings. setNavDump - это устаревший метод в соответствии с андроидными документами, поэтому вы должны быть в порядке, если его отключить.
Один из способов сделать это - переопределить метод 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
У меня была такая же проблема. Оказывается, вам нужно указать версию Android SDK через номер API в файле config.xml
добавить: <preference name="android-minSdkVersion" value="8" />
Ответ 3
Я разработал приложение phonegap в eclipse (для android). У меня такая же проблема. Когда я нажал на 7, приложение остановилось, и когда я нажимаю на 9, приложение ничего не делает в компонентах текстовой области. Также проблема возникла в версиях Android 2.2 и 2.3.3. В макете была такая структура, как frame- > frame- > linear layout. А потом я удалил оба фрейма. Я просто использовал линейную компоновку, и тогда проблема решена. Я могу нажать на 7 и 9, и в приложении нет проблем. Я имею в виду, вы должны проверить неиспользуемые компоненты компоновки.