iPhone und iPad daran hindern, den Bildschirmschoner / Schlafmodus anzumachen

30. April 2014

Problem: ich habe eine Webseite, die es erfordert, dass die Nutzer 5 Minuten einer Animation zusehen und dabei möglichst nichts anderes tun und eben auch nicht den Bildschirm berühren. Das klappt am Desktop soweit auch gut, aber in der mobilen Version macht das natürlich Probleme. Wenn User eingestellt haben, dass sich der Screensaver / Ruhemodus / Automatische Sperre zu früh einstellt, dann ist vor Ablauf der Zeit natürlich Sense. Der Kunde wollte das Feature aber unbedingt haben und offen gesagt hielt ich es für unmöglich, daran etwas ändern zu können. Aber: es stellt sich raus, mit einem fiesen kleinen Javascript Trick kann man iphone und ipad tatsächlich austricksen! Die Lösung: man täuscht einen regelmäßigen Redirect vor, den man dnan aber vor seiner Ausführung wieder stoppt. Konkret sieht das ganze so aus:

  1. iosSleepPreventInterval = setInterval(function () {
  2. window.location.href = the_path;
  3. window.setTimeout(function () {
  4. window.stop()
  5. }, 0);
  6. }, 30000);

Danke, wie schon so oft, an Stackoverflow für diesen netten Trick!