2014-04-23 6 views
6

Próbuję użyć Widoczności strony Api, aby wykryć, kiedy treść internetowa jest wyświetlana w systemie iOS. Muszę proste JS:Podgląd UIWebView/strony Api: Zdarzenie "pagehow" nie uruchamia się

window.addEventListener("pageshow", function(){ 
     alert("page shown"); 
    }, false); 

Lampa powiadomienie zgodnie z oczekiwaniami w ruchomej polowania, kiedy płytka jest włączony, lub po Safari jest zminimalizowane, a następnie ponownie pokazane.

Jednak jeśli hostuję zawartość internetową w UiWebView, zdarzenie nie jest uruchamiane. Czy ktoś inny napotkał ten problem? Jeśli tak, to obejrzyjcie to?

Dzięki ...

+0

Dla każdego, kto chce zobaczyć zdarzenia w przeglądarce, użyj testera zdarzeń: http://jsbin.com/runed/5 - Podejrzewam, że może być sposób użycia setInterval lub webkitRequestAnimationFrame do wykrywania, kiedy strona jest wyświetlana. – robocat

Odpowiedz

1

UIWebView dawka nie wspiera to wydarzenie jednak można zajrzeć do wyzwalania zdarzenie siebie z aplikacji natywnie

To, w jaki sposób wywołania funkcji JavaScript z Objective-C Objective C send data to phonegap and call javascript function

Następnie wystarczy użyć kodu powyżej powiadomić webview kiedy wasz obsługi aplikacji jest uruchomiona lub wznowiona od zawieszenia

Objective C: How to check if application is currently active (i.e. user is using it)? powinien pomóc w tym

0

Całkowicie zgadzam się z powyższą odpowiedzią. Mimo że zdarzenie pageVisibilityChange nie może zostać uruchomione w interfejsie użytkownika UIWebview. nadal można go wykryć za pomocą natywnego kodu, a następnie powiadomić JS o JS-bridge lub technologii wiążącej JS.

Istnieje inna metoda uzyskania tej funkcji przez setInterval. Możesz zainicjować zmienną obecnego znacznika czasu na początku lunchu aplikacji, a następnie zwiększyć tę zmienną o jedną sekundę w każdym interwale funkcji zwrotnej. musisz porównać obecny znacznik czasu do tej zmiennej, jeśli mają różnicę ponad jedną sekundę, oznacza to, że callback setInterval został zablokowany! Możesz więc wskazać, że strona ma najmniejszą liczbę sekund na sekundę