2013-02-16 10 views
5

Chciałbym skorzystać z nowej funkcji pełnoekranowej Safari w iOS6. Teraz wiem, że nie jest możliwe wywołanie funkcji pełnoekranowej z javascript, i jest to w porządku, ale chciałbym wiedzieć, kiedy użytkownik przejdzie do trybu pełnoekranowego. (Aby wyświetlić wyskakujące okno z tekstem "ta strona jest najlepiej widoczna w trybie pełnoekranowym", aż użytkownik przejdzie w tryb pełnoekranowy.)iOS6 Safari pełnoekranowe wykrywanie

Próbowałem ustawić okno, dokument i "opakowanie" div (z szerokością i wysokość ustawiona na 100% w css) zdarzenia onresize (przez normalny javascript i przez zdarzenie "resize" jQuery), ale nie są one wyzwalane, gdy przechodzę do trybu pełnoekranowego.

Ustawiłem także interwał, aby sprawdzić zmianę szerokości i wysokości ekranu/dokumentu/opakowania, ale nie wykazały one żadnej zmiany.

Czy istnieje inny sposób określenia, czy użytkownik wprowadził (lub wyszedł) tryb pełnoekranowy?

Odpowiedz

0

Okay, nie wiem, dlaczego to nie działało wcześniej, ale winię za to nową konsolę do debugowania Safari ios (która jest teraz wymagana, aby przejść przez safari na twoim macu), ponieważ nie zawsze była wyświetlana wszystkie logi wysłane do konsoli.

Jednak, gdy tylko dołączyłem wiadomości do treści samego dokumentu HTML, zdarzenia DZIAŁAły. Powiązanie zdarzenia jQuery 'resize' z oknem wydaje się najlepszą opcją.

Wysokość dokument jest coś około 200, gdy nie jest pełny ekran i gdy pełny ekran to 320.

Najprostszym rozwiązaniem wydaje się po prostu pracować. (Wystarczy połączyć go z funkcją zmiany orientacji, aby wykryć, czy iPhone jest w trybie poziomym (http://ajaxian.com/archives/iphone-windowonorientationchange-code)).

$(window).on('resize', function(){ 
     if ($(this).height() > 300 && 
      (window.orientation == 90 || window.orientation == -90)) { 
      // Full screen! 
     } else { 
      // Exit full screen! 
     } 
    });