2013-03-17 19 views
17

Sono interessato a creare un'app Web basata su geolocalizzazione HTML5 che potrebbe ancora funzionare quando lo schermo del telefono è spento (ad esempio, tenendo traccia di quanto è stato eseguito quando il telefono è in tasca).L'app mobile HTML5 è in esecuzione mentre lo schermo del telefono è spento?

C'è un modo per mantenere l'app in esecuzione, ma avere lo schermo spento, oppure far funzionare l'app in background mentre sono in uso altre app? Questo è possibile, almeno su alcuni dei popolari dispositivi mobili là fuori (iOS più recenti e dispositivi Android in particolare?)

+0

Su Android, è necessario scrivere un'app nativa ed eseguire un servizio da mantenere attivo. Dubito che ios è molto diverso. – 323go

+2

Per Android, sì, ovviamente, pensavo che la tua "web app" avrebbe dovuto essere scaricabile come un'applicazione (come in quello che fornisce Phone Gap). E quindi probabilmente dovresti usare anche il livello Java per fare un po 'di quel lavoro, usando AsyncTask e un servizio. Per iOS, non ne ho idea. –

+0

Anche se ne dubito .. potresti avere un po 'di fortuna a farlo funzionare. con un iframe. http://stackoverflow.com/questions/7047989/javascript-stops-as-i-lock-iphone-can-it-still-run [vedi prima risposta. ] – Madushan

risposta

17

mio music app è HTML5 e anche bisogno di essere eseguito in background. Il supporto per questo varia a seconda del browser mobile.

  • Safari su iOS: continuerà a svolgere una o due canzoni in sottofondo
  • del browser nativo su Android: giocherà una canzone poi si ferma
  • Firefox su Android: si interrompe quando blocco dello schermo o del browser perde messa a fuoco o canzone finisce
  • Dolphin su Android: gioca in sottofondo! ma alla fine si interrompe
  • Opera su Android: migliore supporto in background, Javascript continua a funzionare e la musica continua a essere riprodotta anche quando lo schermo è spento o Opera viene inviata in background, ma alla fine si ferma dopo un paio di canzoni.

Come puoi vedere è un errore. La metà delle volte finisco col cercare di mettere il mio telefono in tasca all'indietro, cercando di tenere lo schermo acceso, fino a quando non lo premo accidentalmente - totalmente da schifo. Desidero ardentemente il giorno in cui l'utente ha più controllo sull'esecuzione di app HTML5 in background. Se dovessi indovinare, direi che il supporto universale per questo è molto lontano, se mai si ottiene anche la trazione. Sono costretto a una soluzione app nativa anche se sono quasi certo che Apple non la approverà mai. Nel frattempo, rimarrò fiducioso e continuerò a testare gli ultimi browser per dispositivi mobili. Perché se dovesse accadere davvero sarebbe fantastico. :-)

Vorrei anche sottolineare che, nella mia esperienza, per quasi tutte le combinazioni di cui sopra, utilizzando HTML5 per eseguire contemporaneamente javascript, estrarre dati di rete e riprodurre musica in genere trasformerà il telefono in un forno e uccidi la batteria abbastanza rapidamente. Ugg.

Inoltre, se si utilizza jQuery Mobile (che è in gran parte fantastico), verrà visualizzata una diversa gestione del tocco sui diversi browser. Ad esempio, il tocco di Firefox funziona alla grande, Dolphin è terribile e richiede un tocco e una presa e un rilascio precisi per avere ragione. Questo non è direttamente colpa di HTML5, ma un altro problema con cui ho a che fare.

Qui ci sono altri interesting thoughts di uno sviluppatore su HTML5 mobile.

UPDATE: Ho appena (22 maggio 2013) hanno scaricato Opera sul mio Samsung Galaxy S3 e ha il miglior supporto HTML5 finora. Per la mia app, continua l'esecuzione di JavaScript in background, se lo schermo è spento, o Opera viene spinto in secondo piano, per almeno un paio di canzoni.

Problemi correlati