2013-03-17 13 views
17

Jestem zainteresowany tworzeniem aplikacji internetowej opartej na geolokalizacji HTML5, która może nadal działać, gdy ekran telefonu jest wyłączony (np. Śledzenie, jak daleko biegniesz, gdy twój telefon jest w kieszeni).Aplikacja mobilna HTML5 działająca, gdy ekran telefonu jest wyłączony?

Czy istnieje sposób na utrzymanie aplikacji, ale ekran jest wyłączony lub aplikacja działa w tle, gdy używane są inne aplikacje? Czy jest to możliwe przynajmniej na niektórych popularnych urządzeniach mobilnych (w szczególności nowszych urządzeniach z iOS i Androidem?)

+0

W systemie Android musisz napisać rodzimą aplikację i uruchomić usługę, aby pozostać aktywna. Wątpię, że ios jest zupełnie inny. – 323go

+2

W przypadku Androida, tak, oczywiście, myśl, że twoja "aplikacja internetowa" będzie musiała być do pobrania jako aplikacja (jak w tym, co zapewnia luka w telefonie). I wtedy prawdopodobnie będziesz musiał użyć warstwy Java, aby wykonać niektóre z tych prac, używając AsyncTask i Service. Na iOS nie mam pojęcia. –

+0

Chociaż wątpię w to .. możesz mieć trochę szczęścia, aby to zadziałało. z iframe. http://stackoverflow.com/questions/7047989/javascript-stops-as-i-lock-iphone-can-it-still-run [patrz pierwsza odpowiedź. ] – Madushan

Odpowiedz

17

Mój music app to HTML5, a także musi działać w tle. Obsługa tego zależy od przeglądarki mobilnej.

  • Safari na iOS: nadal będzie odgrywać jedną lub dwie piosenki w tle
  • Native przeglądarka na Androida: zagra jedna piosenka następnie zatrzymuje
  • Firefoksa na Androida: zatrzyma się, gdy zamki ekranu lub przeglądarka traci fokus lub piosenka kończy się
  • Delfin na Androida: gra w tle! ale w końcu przestaje działać: Opera na Androida: lepsze wsparcie w tle, JavaScript nadal działa, a muzyka jest nadal odtwarzana, nawet gdy ekran jest wyłączony lub Opera jest wysyłana do tła, ale w końcu zatrzymuje się po kilku utworach.

Jak widać, jest to chybił trafił. Przez połowę czasu próbuję odłożyć telefon do kieszeni, próbując utrzymać ekran na ekranie, aż przypadkowo go przyciśniemy - zupełnie do bani. Tęsknię za dniem, w którym użytkownik ma większą kontrolę nad uruchamianiem aplikacji HTML5 w tle. Gdybym miał zgadywać, powiedziałbym, że powszechne poparcie dla tego jest bardzo odległe, jeśli kiedykolwiek nawet zostanie odebrane. Jestem zmuszony do rozwiązania natywnej aplikacji, mimo że jestem prawie pewien, że Apple nigdy tego nie zaaprobuje. W międzyczasie pozostanę pełen nadziei i będę testować najnowsze przeglądarki mobilne. Bo jeśli tak się stanie, to będzie niesamowite. :-)

Chciałbym również zwrócić uwagę, że z mojego doświadczenia wynika, że ​​prawie wszystkie powyższe kombinacje, używanie HTML5 do jednoczesnego uruchamiania javascript, ściągania danych sieciowych i odtwarzania muzyki zazwyczaj zamieniają twój telefon w piec i zabijaj baterię dość szybko. Ugg.

Ponadto, jeśli korzystasz z jQuery Mobile (co jest w większości fantastyczne), zobaczysz różne sposoby obsługi dotyku w różnych przeglądarkach. Na przykład Firefox touch działa świetnie, Dolphin jest straszny i wymaga precyzyjnego dotknięcia i przytrzymania i zwolnienia, aby uzyskać właściwą. To nie jest bezpośrednio wina HTML5, ale inny problem, z którym mam do czynienia.

Oto inny programista interesting thoughts na mobilnym HTML5.

AKTUALIZACJA: Właśnie (22 maja 2013 r.) Pobrałem Opera na moim Samsung Galaxy S3 i ma najlepsze wsparcie HTML5 do tej pory. Dla mojej aplikacji nadal działa javascript w tle, niezależnie od tego, czy ekran jest wyłączony, czy Opera jest wypychana na drugi plan, co najmniej na kilka piosenek.

Powiązane problemy