2012-03-20 39 views
11

Benim PhoneGap tabanlı android app garip bir sorun var. Bazı ekranlarda, no. 9 tuşu tamamen yok sayılır. Bu benim tüm Android 2.X cihazlarda olur. PG'nin önceki sürümleriyle denedim ve sorunun ilk olarak v1.2'de oluştuğunu buldum.PhoneGap for Android 9 tuşu kabul etmiyor

Sorunu çoğaltması gereken örnek bir index.html dosyasının kodu. Hem Android 2.2 hem de 2.3'te, "bozuk" olarak etiketlenen metin kutuları, girdi olarak 9 sayısını kabul etmez.

<!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

CSS'nin bir araya gelmesi bazı sorunlara neden oluyor gibi görünüyor. Yukarıdaki tüm css kaldırırsanız veya sadece 'overflow: hidden' sonra beklendiği gibi çalışır – dhaval

+0

Evet, ancak css sorunu yeniden üretmenin bir yolu var. –

+0

Bu sorunun ortaya çıkmasına neden olacak pek çok yol var gibi görünüyor. Bu özel CSS'yi kullanmak sadece bir yoldur. TelefonGap kaynak koduna aşina olan birinin konuyu teşhis etmesine yardımcı olacağını umuyordum. – jmsgofish

cevap

17

O this issue ile ilgili olabilecek: Eğer

eklenti config.xml dosyasındaki API numarasından Android SDK sürümü belirtmek gerekir çıkıyor. Bazı nedenlerden dolayı PhoneGap web görünümünün WebSettings'inde setNavDump çağırıyor. setNavDump, android docs'a göre eski bir yöntemdir, böylece devre dışı bırakırsanız iyi olmalısınız. yapmak

bir yolu bu işe yaramazsa, mevcut onCreate yöntemde loadUrl çağrıdan sonra eklemeyi deneyin DroidGap

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

uzanır sınıfınızda init yöntemini geçersiz kılarak olduğunu :

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

Bu düzeltildi - Teşekkürler! – jmsgofish

+3

Telefon klavyesinde 7 numaralı numaraya girdiğimde, Phoneex/Cordova 1.7 uygulamasının Nexus 7'de çökmesi oldu ve bu da bunu düzeltdi. Teşekkürler! – Chris

2

Aynı sorunu yaşadım. <preference name="android-minSdkVersion" value="8" />

+0

Ben config.xml sadece PhoneGap Build için inanıyorum. Eclipse'de yapıyorum bu yüzden o dosyam yok. Ben AndroidManifest.xml belirtilen minSdkVersion var ve hala düzgün çalışmıyor. jmsgofish

0

Eclipse'de (android için) bir telefon uygulaması geliştirdim. Bende aynı problem vardı. 7'ye bastığımda, uygulama durdu ve 9'a bastığımda, uygulama metin alanı bileşenlerinde hiçbir şey yapmaz. Aynı zamanda 2.2.& 2.3.3 sürümünde bir sorun oluştu. Düzende çerçeve-> çerçeve-> doğrusal düzen gibi bir yapı vardı. Ve sonra her iki kareyi de kaldırdım. Doğrusal düzeni kullandım ve sonra problem çözüldü. 7 & 9'a basabilirim ve uygulamada sorun yok. Kullanılmayan düzen bileşenlerini kontrol etmelisin.

İlgili konular