Book Image

Building Cross-Platform Desktop Applications with Electron

By : Muhammed Jasim
Book Image

Building Cross-Platform Desktop Applications with Electron

By: Muhammed Jasim

Overview of this book

<p>Though web applications are becoming increasingly popular, desktop apps are still important. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML, and CSS, and this book will teach you how to create your first desktop application with Electron. It will guide you on how to build desktop applications that run on Windows, Mac, and Linux platforms.</p> <p>You will begin your journey with an overview of Electron, and then move on to explore the various stages of creating a simple social media application. Along the way, you will learn how to use advanced Electron APIs, debug an Electron application, and make performance improvements using the Chrome developer tools. You’ll also find out how to package and distribute an application, and more.</p> <p>By the end of the book, you will be able to build a complete desktop application using Electron and web technologies. You will have a solid understanding of the common challenges that desktop app developers face, and you’ll know how to solve them.</p>
Table of Contents (19 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Monitoring power changes


To watch different power states in your machine, we use the powerMonitor module, which is available in Electron module. It provides events that you can use to watch various power states with your machine. Basically, this module provides four events--suspend, resume, on-ac, and on-battery. These events should be attached to the context only after the app emits the ready event. The following is the example to monitor the power state of your machine from the application:

const electron = require('electron');
const{app, BrowserWindow, dialog } = electron;

let appShell;
const appUrl = `file://${__dirname}/index.html`;

function createElectronShell() {
 appShell = new BrowserWindow({ width: 800, height: 600 });
 appShell.loadURL(appUrl);

 electron.powerMonitor.on('suspend', () => {
    dialog.showMessageBox({
      type: 'warning',
      buttons: ['Ok'],
      title: 'Warning',
      message: 'The system is going to sleep'
    })
 })

electron.powerMonitor.on('on-ac...