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

Dealing with tray icons


Electron has a built-in class called Tray, that can be used to add custom icon and menu to the notification area. Each platform is having different look and feels for this tray icon. However, this is quite useful to attach some quick action to the application. For instance, the tray icon on macOS should look as shown the following screenshot:

In Linux and Windows, it looks different. However, the same Tray class can be used to create tray icon for all major platforms. Creating a tray icon is simple with the Tray class. The class should be instantiated after the app module emits the ready event. The following code creates a tray icon and adds some quick menu items into the tray icon context menu:

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

let appShell;
let tray;

app.on('ready', () => {
   appShell = new BrowserWindow({ width: 800, height: 600 });
   appShell.loadURL(appUrl);
   appShell.on('closed', () => { appShell = null; });
   tray =...