2010-07-04 6 views
4

De nombreux articles traitent de cette question pour les applications iPhone, mais je dois savoir comment faire cela pour javascript sur une page Web.iPhone/Safari: Comment continuer à exécuter javascript en mode veille?

Mon problème spécifique est que je veux suivre l'emplacement de l'appareil sur une longue période de temps (disons un voyage en voiture). Cela devient un problème lorsque l'appareil dort (et peut-être lors d'un appel téléphonique, je n'ai pas encore essayé ce cas).

Je suis ouvert à toutes les idées, y compris la prévention du mode veille (mais depuis que je suis dans Safari, je ne sais pas combien de contrôle je devrais faire cela).

+0

Je ne sais pas avec certitude, mais l'iPhone ne reste-t-il pas allumé lorsqu'il est bercé? Vous pourriez afficher une fenêtre indiquant aux utilisateurs de garder leur iphone branché; cela résoudrait les utilisateurs de voiture-voyage. Pour le reste, tu tuerais leurs batteries en un rien de temps. L'accès au réseau GPS et Internet nuit vraiment à la durée de vie de la batterie. – Andrew

+0

Je suis au courant des ramifactions. L'utilisateur est parfaitement conscient qu'ils sont suivis, c'est l'usage exclusif de la page Web. Supposons donc qu'ils auront la page web comme la page la plus en avant dans Safari, et que Safari est actif. J'ai également remarqué que quelques itérations de "watchPosition" se produisent après que l'appareil se soit mis en veille. Mais après ces quelques-uns (environ 5) ça s'arrête. – Sid

+0

@Andrew Je vais essayer ça dans ma voiture. Cela n'a pas fonctionné dans ma chaîne stéréo. – Sid

Répondre

6

Vous ne pouvez pas. Les pages Web n'exécutent pas javascript sauf si (1) la page est la plus en avant et (2) Safari est réellement actif. Safari ne reste pas actif lorsque l'appareil est en veille.

Si vous y pensez, cette fonctionnalité serait une violation massive de la vie privée. Imaginez ce que vous ressentiriez si vous visitiez une page Web qui suivait secrètement votre position même lorsque votre appareil était éteint! Vous seriez très en colère. Même si vous pouviez le faire sur le plan technologique, les gens pourraient être contrariés s'ils découvraient que vous l'aviez fait.

Les informations de localisation sont étroitement surveillées pour des raisons de confidentialité et de sécurité physique (pensez aux harceleurs et à votre page Web). C'est pourquoi vous obtenez une boîte de dialogue vous demandant d'utiliser le gestionnaire de position la première fois.

+2

Je ne pense pas que la vie privée soit un problème. Chaque fois que vous essayez d'accéder aux services de localisation dans Mobile Safari, l'utilisateur ne doit-il pas cliquer sur "OK"? Pour moi, cela signifie le consentement. Eh bien ... pour moi quand même. – Andrew

+1

Merci pour la réponse, bien que je ne pense pas que ce soit autant une atteinte à la vie privée que vous le suggérez. L'utilisateur est toujours informé et ne devrait pas s'attendre à ce que "sleep" soit identique à "off". Mais c'est une question d'opinion, je suppose. – Sid

+0

Je serais concerné par tout script à distance qui pourrait activer un tel gestionnaire de localisation. Compte tenu des problèmes de sécurité avec les sites Web, vous ne pouviez même pas être sûr que le site que vous pensiez demander votre emplacement envoyait le code. Avoir une page Web qui a couru et suivi votre emplacement en arrière-plan serait encore plus dangereux, même si vous deviez lui donner la permission de commencer. Combien de pages avez-vous chargées en ce moment sur Safari mobile et depuis combien de temps y êtes-vous? Il serait facile d'ouvrir un trou et de le laisser ouvert. – TechZen

Questions connexes