SORU
7 NİSAN 2010, ÇARŞAMBA


iPad App Web: Sanal Klavye Safari JavaScript Kullanarak Tespit etmek?

İPad için bir web uygulaması yazıyorum (normal App Store uygulaması- yazılı kullanarak HTML, CSS ve JavaScript). Klavye ekranın büyük bir kısmını doldurur beri, klavye gösterildiğinde anlam app kalan boşluk uygun düzeni değiştirmek için yapar. Ancak, klavye gösterilip gösterilmeyeceğini veya algılamak için bir yol buldum.

Benim ilk fikir bir metin alanı odağa sahip olduğunda klavye görünür olduğunu varsayalım. Harici bir klavye bir iPad için bağlı olduğu, ancak sanal klavye metin alanı odağı aldığında görünmüyor.

Benim deneyler, klavye de DOM elemanlarının herhangi bir yükseklik veya scrollheight etkilemedi ve klavye görünür olup olmadığını gösteren hiçbir özel ya da olayların özelliklerini buldum.

CEVAP
8 NİSAN 2010, PERŞEMBE


Biraz çirkin olmasına rağmen çalışan bir çözüm buldum. Ayrıca her durumda işe yaramaz, ama benim için çalışıyor. İPad pencere boyutu için Kullanıcı Arabirimi boyutu adapte olduğum için, Kullanıcı normalde kaydırma edemiyor. Eğer pencere scrollTop kurdum başka bir deyişle, 0 kalır.

Diğer taraftan, klavye gösterilirse, aniden kaydırma çalışır. ScrollTop, hemen değerini test ve sıfırlama için. Bu kod, DV kullanarak görünebilir:

$(document).ready(function(){
    $('input').bind('focus',function() {
        $(window).scrollTop(10);
        var keyboard_shown = $(window).scrollTop() > 0;
        $(window).scrollTop(0);

        $('#test').append(keyboard_shown?'keyboard ':'nokeyboard ');
    });
});

Normalde, bu kullanıcı için görünür olması beklenir. En azından Simülatörde çalışırken ne yazık ki, iPad gözle görülür bir şekilde hızlı bir şekilde olsa da) yukarı ve tekrar aşağı kayar. Yine de, en azından bazı özel durumlarda işe yarıyor.

Bir iPad bu test ettik ve gayet iyi iş gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Authority

    Android Auth

    3 NİSAN 2011
  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • magnum33563

    magnum33563

    8 NİSAN 2011