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

  • BSA

    BSA

    9 NİSAN 2012
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • Tom Megalis

    Tom Megalis

    18 NİSAN 2006