Sovelluksen elinkaaritapahtumien hallinta
Käsitelkää sovelluksen elinkaaren eri tapahtumia, kuten `ready`, `window-all-closed`, `activate` ja `quit`, varmistaaksenne sovelluksen asianmukaisen toiminnan.
Sovelluksen elinkaaritapahtumien hallinta on ilmainen Electron-työpöytäsovellusten kehitys-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Electron-työpöytäsovellusten kehitys-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Electron-työpöytäsovellusten kehitys-kurssilla on yhteensä 4 oppituntia.
Sovelluksen elinkaari: elinkaaritapahtumat
Ohjelmistosovelluksilla on ihmisten tavoin elinkaari! Ne käynnistyvät, toimivat ja lopulta sulkeutuvat. Electronissa näitä vaiheita hallitaan ”elinkaaritapahtumien” avulla.
- Näiden tapahtumien avulla sovellus voi reagoida tärkeisiin hetkiin, kuten siihen, kun ikkuna on valmis näytettäväksi tai kun kaikki sen ikkunat on suljettu.
- Niiden asianmukainen käsittely varmistaa, että sovellus toimii ennakoitavasti ja ammattimaisesti eri käyttöjärjestelmissä.
Tutustuminen `app`-moduuliin
Electron tarjoaa erityisen moduulin nimeltä app. Tämä moduuli on sovelluksen elinkaaren hallinnan keskiössä.
app-moduulilla hallitsette sovelluksen tapahtumia.- Sen avulla voitte kuunnella esimerkiksi tapahtumia, jotka ilmoittavat sovelluksen valmistumisesta, ikkunoiden sulkemisesta tai sovelluksen sulkeutumisen aloittamisesta.
- Se tarjoaa myös menetelmiä sovelluksen hallintaan, kuten sovelluksen sulkemiseen tai uudelleenkäynnistämiseen.
Sovellus on valmis! `ready`-tapahtuma
ready-tapahtuma on elinkaaren keskeisin tapahtuma. Se käynnistyy, kun Electron on suorittanut alustuksen loppuun ja on valmis luomaan selainikkunoita sekä toimimaan järjestelmän kanssa.
Teidän on odotettava tätä tapahtumaa ennen useimpien toimintojen suorittamista. Kokeilkaa seuraavan yksinkertaisen esimerkin suorittamista:
const { app } = require('electron');
app.on('ready', () => {
console.log('Electron app is ready!');
// In a real app, you'd create windows here.
});
// Minimal handler to allow the app to quit when needed
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});Ensimmäisen ikkunan käynnistäminen
ready-tapahtumassa luodaan yleensä sovelluksen pääikkuna. Näin varmistetaan, että Electron-ympäristö on alustettu kokonaan ennen käyttöliittymän näyttämistä.
Tuomme BrowserWindow-luokan ja luomme siitä ilmentymän, joka lataa yksinkertaisen HTML-sisällön suoraan.
const { app, BrowserWindow } = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({
width: 400,
height: 300
});
// Load a simple HTML string directly for a self-contained example
mainWindow.loadURL('data:text/html;charset=utf-8,<h1>Hello Electron!</h1><p>This is your window.</p>');
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});Kaikki ikkunat suljettu? `window-all-closed`
window-all-closed-tapahtuma käynnistyy, kun kaikki sovelluksen ikkunat on suljettu. Se, miten tähän reagoidaan, riippuu käyttöjärjestelmästä.
- Windowsissa ja Linuxissa sovellukset yleensä sulkeutuvat, kun kaikki ikkunat suljetaan.
- macOSissa sovellukset jäävät usein aktiivisiksi Dockiin.
Tämä koodi varmistaa, että sovellus sulkeutuu Windowsissa ja Linuxissa mutta jää avoimeksi macOSissa.
const { app, BrowserWindow } = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({
width: 400,
height: 300
});
mainWindow.loadURL('data:text/html;charset=utf-8,<h1>Close Me!</h1>');
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
// On macOS, it's common for apps to remain active in the dock
// until the user quits explicitly with Cmd + Q.
if (process.platform !== 'darwin') {
app.quit();
}
});macOS-sovelluksen aktivoiminen uudelleen
activate-tapahtuma liittyy erityisesti macOSiin. Se käynnistyy, kun sovellus aktivoidaan yleensä napsauttamalla sovelluksen kuvaketta Dockissa, mutta avoimia ikkunoita ei ole.
Tässä tilanteessa ikkuna luodaan uudelleen, jos mainWindow on null.
const { app, BrowserWindow } = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({
width: 400,
height: 300
});
mainWindow.loadURL('data:text/html;charset=utf-8,<h1>Activated!</h1><p>A new window was opened.</p>');
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', createWindow);
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate', () => {
// On macOS, re-create a window when the dock icon is clicked
// and there are no other windows open.
if (mainWindow === null) {
createWindow();
}
});Viimeinen tilaisuus: `will-quit`
will-quit-tapahtuma käynnistyy juuri ennen kuin sovellus alkaa sulkea ikkunoitaan ja lopettaa toimintansa. Tämä on viimeinen tilaisuutenne suorittaa synkronisia siivoustoimia.
- Voitte esimerkiksi tallentaa tallentamattomat tiedot tai sulkea tietokantayhteydet.
- Tämä tapahtuma lähetetään ennen
quit-tapahtumaa.
const { app, BrowserWindow } = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({
width: 400,
height: 300
});
mainWindow.loadURL('data:text/html;charset=utf-8,<h1>Will Quit Demo</h1>');
mainWindow.on('closed', () => { mainWindow = null; });
}
app.on('ready', createWindow);
app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } });
app.on('activate', () => { if (mainWindow === null) { createWindow(); } });
app.on('will-quit', (event) => {
console.log('Application is about to quit! Performing final cleanup...');
// event.preventDefault(); // Uncomment to prevent quitting
// Perform synchronous cleanup here, e.g., save data.
});Lopullinen hyvästijättö: `quit`
quit-tapahtuma lähetetään, kun sovellus on sulkeutunut onnistuneesti. Tässä vaiheessa kaikki ikkunat on suljettu ja pääprosessi on sammumassa.
- Tätä tapahtumaa käytetään ensisijaisesti lokitukseen tai hyvin yksinkertaisiin lopullisiin ilmoituksiin.
- Merkittävien siivoustoimien suorittaminen tai sovelluksen sulkeutumisen estäminen on yleensä tässä vaiheessa liian myöhäistä.
const { app, BrowserWindow } = require('electron');
let mainWindow;
function createWindow () {
mainWindow = new BrowserWindow({
width: 400,
height: 300
});
mainWindow.loadURL('data:text/html;charset=utf-8,<h1>Quit Demo</h1>');
mainWindow.on('closed', () => { mainWindow = null; });
}
app.on('ready', createWindow);
app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } });
app.on('activate', () => { if (mainWindow === null) { createWindow(); } });
app.on('will-quit', () => { console.log('Will quit...'); });
app.on('quit', (event, exitCode) => {
console.log(`Application has quit with code: ${exitCode}`);
// This is the very last event.
});Elinkaaritapahtumien tarkistus
Olette oppineet useista tärkeistä Electron-sovelluksen elinkaaritapahtumista. Nyt testataan ymmärrystänne!
Elinkaaritapahtumat: tärkeimmät opit
Hienoa työtä! Olette oppineet hallitsemaan Electron-sovelluksen elinkaarta niin, että se käynnistyy, toimii ja sulkeutuu hallitusti eri käyttöjärjestelmissä.
app-moduuli on tapahtumankäsittelyn keskiössä.readyon tärkeä sovelluksen alustamisen ja ikkunoiden luomisen kannalta.window-all-closedjaactivatehallitsevat ikkunoiden toimintaa eri alustoilla.will-quitjaquithallitsevat sovelluksen sulkemisen viimeisiä vaiheita.
Näiden tapahtumien hallinta on olennaista vankkojen Electron-sovellusten rakentamisessa. Jatkakaa harjoittelua!
Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 47
Usein kysytyt kysymykset
Onko oppitunti ”Sovelluksen elinkaaritapahtumien hallinta” ilmainen?
Kyllä – oppitunnin ”Sovelluksen elinkaaritapahtumien hallinta” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Electron-työpöytäsovellusten kehitys-kurssin, päivitä CoddyKit PROhon. Electron-työpöytäsovellusten kehitys-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Sovelluksen elinkaaritapahtumien hallinta”?
Käsitelkää sovelluksen elinkaaren eri tapahtumia, kuten `ready`, `window-all-closed`, `activate` ja `quit`, varmistaaksenne sovelluksen asianmukaisen toiminnan. Harjoittelet Electron-työpöytäsovellusten kehitys-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Electron-työpöytäsovellusten kehitys-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Electron-työpöytäsovellusten kehitys-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Sovelluksen elinkaaritapahtumien hallinta”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Electron-työpöytäsovellusten kehitys-oppitunnilla?
Kyllä. Jokainen Electron-työpöytäsovellusten kehitys-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Sovelluksen elinkaaritapahtumien hallinta
- Automaattisten päivitysten toteuttaminen
- Kaatumisraportointi
- Deep linking ja protokollakäsittelijät