2016-11-06 12 views
10

ja wdrożenie zegar javascript obciążenia czasowe w iframe i że zegar odgrywa również kilka plików audio w określonych odstępach czasu, w zasadzie to na rutynowe ćwiczenia tak powiedzieć przez 10 sekund nie jest pierwsze ćwiczenie, a następnie przez minutę drugi i przez 2 minuty trzeci i tak dalej.zapobiec safari ze snu przy użyciu javascript

Ponieważ czas na ćwiczenia i uzupełnia następny okazuje się zmienić dźwięku dla danego ćwiczenia i tak dalej. Co chcę jest zapobieganie przeglądarkę spać w każdym trybie, który jest telefon (Android, iOS), laptopa wszędzie do czasu stoper jest uruchomiony.

Użyłem 2 rozwiązań dla ios używam do przeładowania strony i dla innych, czy to jest Android lub laptop Próbuję wideo, jak stwierdzono here.

A mój ostateczny kod, aby sprawdzić, co jest

var ua = { 
    Android: /Android/ig.test(navigator.userAgent), 
    // iOS: /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent) 
    iOS:/iPhone|iPad|iPod/i.test(navigator.userAgent) 
}; 

<script type="text/javascript" src="js/sleep.js"></script> 

if (ua.iOS) { 
    preventIosSleep = setInterval(function(){ 
    window.top.location.href = '/'; 
    setTimeout(function(){ 
     try { 
     window.top.stop(); 
     } catch (exception) { 
     document.execCommand('Stop'); 
     } 
    }, 0); 
    }, 10000); 
} else { 
    sleep.prevent(); 
} 

// and when releasing the things 
if (ua.iOS) { 
    clearInterval(preventIosSleep); 
} else { 
    sleep.allow(); 
} 

sleep.js pochodzi z linku jak powiedziano wyżej. Próbowałem już od około tygodnia. To rozwiązanie działa dobrze we wszystkich przeglądarkach z wyjątkiem safari na MAC. Czy ktoś może mi powiedzieć, w jaki sposób mogę przerwać przeglądarkę Safari, aby nie wchodziła w tryb uśpienia.

+2

nie możesz ........ jesteś na łasce przeglądarki. –

+0

Twój „ostateczny kod, aby sprawdzić, co” ma 'AppleWebKit' regex wykomentowane, więc' ua.iOS' nawet nie wykrywa Safari na MacOS. Czy przynajmniej potwierdziłeś, że możesz wykryć Safari na MacOS? –

Odpowiedz

6

W przeszłości udało się zrobić hacki takie jak posiadające tag dźwięku na stronie lub przeładunek URL w ukrytym iframe. Ale żaden z nich nie działa tak jak w iOS 7. Jedynym praktycznym rozwiązaniem jest stworzenie aplikacji korzystającej z interfejsu UIWebView.

Poniżej znajduje się dodatkowych informacji, jeśli jesteś zainteresowany: https://stackoverflow.com/a/7477438/1640090

+0

Oto, o co pytam, już obejrzałem ten link. –

+0

Więc ogólnie pozwala zakończyć tak, jak to nie jest możliwe. Tak więc, jeśli ktokolwiek spróbuje, może uzyskać pomoc. –

2

Polecam tworząc aplikację Cordova jeśli szukasz kontroli poziomu urządzenia. Wierzę, że typ rzeczy, które masz nadzieję osiągnąć w przeglądarce jest czymś, co Apple aktywnie zapobiega; prawdopodobnie ze względu na żywotność baterii i/lub bezpieczeństwo urządzenia.

Jeśli pójdziesz tą drogą, można użyć: https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin

Nadzieję, że to pomaga.

+0

Jeśli można sprawdzić moje pytanie rzeczy pracują nad urządzeniami, ale nie działa na Mac Safari. Tak więc, jeśli możesz w tym pomóc. –

Powiązane problemy