Sería bueno si el evento de "activación" de la computadora se propagara al navegador y estuviera disponible en la API de JavaScript. ¿Alguien sabe si se implementa algo como esto?¿Pueden los navegadores de escritorio detectar cuando la computadora reanuda el sueño?
Respuesta
No conozco ningún método directo para hacer esto, pero una forma de tener una buena idea de cuándo sucede es configurar una tarea setInterval que se ejecuta, digamos cada 2 segundos, y almacena el tiempo último corrió. Luego verifique si la última vez que se ejecutó es mucho mayor que 2 segundos.
var lastTime = (new Date()).getTime();
setInterval(function() {
var currentTime = (new Date()).getTime();
if (currentTime > (lastTime + 2000*2)) { // ignore small delays
// Probably just woke up!
}
lastTime = currentTime;
}, 2000);
Esto es similar a cómo lo haría - solo, use un intervalo mucho mayor que dos segundos :-) Imagino que 5 minutos sería un valor razonablemente pequeño (es raro que mi computadora duerma por una cantidad de tiempo pequeña) . Además, otra forma es registrar cuántos "tics" ocurrieron frente a cuántos se suponía que debían ocurrir (manteniéndolo en promedio). También está el caso límite de un cambio de hora (DST, por lo tanto, es mejor utilizar UTC o usuario) que puede estar marginado. –
+1 para una solución razonable :) –
Me ayudó :) +1 – Varun
Esto es un poco anticuado, pero en base a la respuesta de Andrew Mu he creado un simple plugin de jQuery para hacer eso: https://bitbucket.org/paul.okopny/jquery.wakeup-plugin/wiki/Home
uso es simple:
$.wakeUp(function(sleep_time) {
alert("I have slept for " + sleep_time/1000 + " seconds")
});
Espero que esto ayude a alguien en el futuro.
Uno de los problemas que puede encontrar con los métodos anteriores es que los cuadros de alerta u otras ventanas de tipo modal pausarán la ejecución de JS posiblemente causando una indicación de activación falsa. Una forma de resolver este problema es utilizar trabajadores web (con soporte en los nuevos navegadores) ....
var myWorker = new Worker("DetectWakeup.js");
myWorker.onmessage = function (ev) {
if (ev && ev.data === 'wakeup') {
// wakeup here
}
}
// DetectWakeup.js (put in a separate file)
var lastTime = (new Date()).getTime();
var checkInterval = 10000;
setInterval(function() {
var currentTime = (new Date()).getTime();
if (currentTime > (lastTime + checkInterval * 2)) { // ignore small delays
postMessage("wakeup");
}
lastTime = currentTime;
}, checkInterval);
¿Podría dar una demostración? He intentado resolverlo, pero no da nada. Ni siquiera en la consola. –
- 1. ¿Los navegadores de escritorio admiten eventos táctiles?
- 2. Detectar móvil, tableta o computadora de escritorio en Django
- 3. ¿Cómo detectar cuando la computadora portátil funciona con baterías?
- 4. ¿Cómo manejan los navegadores de escritorio las metaetiquetas móviles?
- 5. Obtenga la atención de los usuarios cuando el navegador está minimizado (notificaciones de escritorio entre varios navegadores)
- 6. Metaetiqueta de Viewport para navegadores de escritorio?
- 7. ¿Cómo detectar cuando el cable de alimentación de la computadora portátil se ha desconectado?
- 8. ¿Pueden los encabezados HTTP ser demasiado grandes para los navegadores?
- 9. Cómo detectar iPhone/Android despierta del sueño con javascript
- 10. El servicio de Windows creado para apagar la computadora no funciona cuando la computadora está bloqueada
- 11. ¿Utiliza una computadora de escritorio separada en un monitor externo?
- 12. Detectar fuente de conexión de escritorio remoto
- 13. Simulación de un clúster de computadora en una computadora de escritorio simple para probar algoritmos paralelos
- 14. Plataforma cruzada Java? Android y computadora de escritorio
- 15. ¿Cómo detectar si el navegador admite la carga de archivos? (Móvil + Escritorio)
- 16. ¿Cómo detectar la capacidad de selección de directorio en los navegadores?
- 17. Detectar automáticamente una nueva computadora conectada a la red
- 18. ¿Pueden los ISR migrar a otras CPU cuando se evitan?
- 19. ¿Pueden dos navegadores diferentes compartir una cookie?
- 20. Encender automáticamente la computadora cuando hay energía de A/C
- 21. detectar cuando los datos han cambiado
- 22. detectar ipad cuando se eliminan los UIPopoverControllers
- 23. Barra de título de Android dejando espacio en cuando se reanuda la aplicación
- 24. La línea de retardo imposible Javascript/sueño
- 25. python3 sueño() problema
- 26. Detectar si la aplicación se está ejecutando en la computadora portátil
- 27. Pausa y reanuda la grabación de audio en Android
- 28. ¿Despertarse del evento de sueño en el iPhone?
- 29. Detectar si se pueden alcanzar en el fondo
- 30. ¿Podemos detectar el nivel de batería de la computadora portátil con .net?
lo dudo ya que probablemente tendría que cerrar la brecha entre el navegador y el sistema operativo aislado, pero lo estar interesado en descubrirlo es, de hecho, posible. –
¿Qué tipo de dispositivo? –
Define "dormir", ya que este término varía mucho por dispositivo. –