Aprende a deshabilitar el modo de suspensión del sistema operativo dentro de su aplicación Electron.

Cómo evitar que el sistema entre en modo de suspensión (suspensión) en Electron Framework

Algunas aplicaciones requieren que el modo de suspensión o el modo de suspensión de pantalla esté desactivado, ya que esto cambiaría el comportamiento de la aplicación. Las aplicaciones como los reproductores de video, los administradores de descargas y otras sufren cuando se habilita dicha función. Como de costumbre, el usuario no desactivará el modo de suspensión de la computadora solo porque su aplicación lo requiera (bueno, no siempre), por eso la aplicación debe buscar una forma de solucionar este modo de suspensión sin hacer que el usuario haga algo especial. .

Es por eso que la API Power Save Blocker de Electron se introdujo en la versión reciente y en este artículo, le mostraremos cómo usarla fácilmente dentro de su aplicación de escritorio híbrida basada en Electron.

Importante

Su versión de Electron Framework debe ser al menos  v1.7.5  para que funcione correctamente con la API Power Save Blocker.

Cómo funciona la API

La API Power Save Blocker de electron bloquea el sistema para que no entre en modo de bajo consumo (suspensión):

const {powerSaveBlocker} = require('electron')

El módulo ofrece solo 3 métodos:

comienzo

El método de inicio espera como primer argumento una cadena con el tipo de bloqueador que desea utilizar:

  • prevent-app-suspension Evita que se suspenda la aplicación. Mantiene el sistema activo pero permite apagar la pantalla. Casos de uso de ejemplo: descargar un archivo o reproducir audio.
  • prevent-display-sleep: Evita que la pantalla entre en reposo. Mantiene el sistema y la pantalla activos.

La ejecución del método de inicio devuelve un ID que se puede utilizar para verificar si el servicio se está ejecutando o simplemente para detenerlo.

detener

El método espera como primer argumento el ID del servicio iniciado por el método de inicio:

  • id ID del bloqueador de ahorro de energía devuelto por . powerSaveBlocker.start

Está empezado

El método verifica si el servicio de bloqueo se ha iniciado correctamente:

  • id Entero: el ID del bloqueador de ahorro de energía devuelto por . powerSaveBlocker.start

Usando la API

El siguiente código muestra cómo evitar que la pantalla entre en suspensión usando la API:

Importante

El código debe ejecutarse en el proceso del renderizador ( index.htmlo los archivos JS importados en él), no en el principal, de lo contrario, el bloqueador no funcionará.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Electron Application</title>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0, maximum-scale=1, minimum-scale=1">
    </head>
    <body>
        <div id="app"></div>

        <script>
            // Requiere control remoto de electron
            const remote = require("electron").remote;

            // Usar el modo 'prevenir-pantalla-suspensión'
            const id = remote.powerSaveBlocker.start("prevent-display-sleep");

            // Si es necesario, detenga el bloqueador
            // remote.powerSaveBlocker.stop(id);
            
            console.log("Bloqueador de ahorro de energía iniciado: ", powerSaveBlocker.isStarted(id));
        </script>
    </body>
</html>

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores