Electron-työpöytäsovellusten kehitys · Oppitunti

Kaatumisraportointi

Määrittäkää kaatumisraportointi keräämään ja lähettämään kaatumislokeja automaattisesti, jotta voitte tunnistaa ja korjata sovelluksen kriittiset ongelmat.

Oppitunti 3/411 vaihetta

Kaatumisraportointi on ilmainen Electron-työpöytäsovellusten kehitys-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.

Miksi kaatumisraportit ovat tärkeitä

Onko sovellus joskus sulkeutunut yhtäkkiä ilman varoitusta? Se on kaatuminen! Kaatumisraportointi on tärkeä työkalu, joka kerää automaattisesti tietoja tällaisista odottamattomista virheistä.

Nämä tiedot auttavat kehittäjiä ymmärtämään, mitä tapahtui, korjaamaan virheitä sekä parantamaan sovellusten vakautta ja luotettavuutta. Se on kuin sovelluksen musta laatikko!

Electronin sisäänrakennettu työkalu

Electron sisältää tehokkaan, sisäänrakennetun crashReporter-moduulin. Tämä moduuli valvoo sovelluksen kaatumisia ja lähettää raportin määritetylle palvelimelle, kun kaatuminen tapahtuu.

Se toimii sekä pääprosessissa (Node.js) että renderöintiprosesseissa (verkkosisältö), joten seuranta kattaa molemmat.

Kaatumisraportoinnin käynnistäminen

Kaatumisraportoinnin käyttöön ottamiseksi se on alustettava pääprosessissa mahdollisimman aikaisin, yleensä ennen ikkunoiden luomista. Toimikaa näin:

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

// IMPORTANT: Call crashReporter.start() as early as possible
crashReporter.start({
  productName: 'MyElectronApp',
  companyName: 'MyCompany',
  submitURL: 'http://localhost:1127/post', // Replace with your actual crash server URL
  uploadToServer: true,
});

app.whenReady().then(() => {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
  });
  mainWindow.loadFile('index.html');
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    // In macOS, usually re-create a window in the app when the dock icon is clicked
    // For this example, we'll just ensure the app doesn't quit on macOS by default
  }
});

Raporttien määrittäminen

Kun kutsutte crashReporter.start()-metodia, annatte useita tärkeitä asetuksia:

  • productName: Sovelluksen nimi.
  • companyName: Yrityksenne nimi.
  • submitURL: Tämä on tärkein asetus! Se on palvelimen päätepisteen URL-osoite, johon kaatumisraportit lähetetään.
  • uploadToServer: Asettakaa arvoksi true, jos haluatte lähettää raportit automaattisesti.

Jos kelvollista submitURL-osoitetta, joka osoittaa raportit vastaanottavalle palvelimelle, ei ole määritetty, raportteja ei lähetetä mihinkään!

Pääprosessin kaataminen

Voitte kaataa pääprosessin tarkoituksella määritysten testaamista varten. process.crash()-metodi lopettaa prosessin välittömästi ja käynnistää kaatumisraportoinnin.

Muistakaa, että tämä on tarkoitettu testaamiseen! Oikeassa sovelluksessa kaatumiset ovat yleensä odottamattomia. Kaatumisraportointi lähettää raportin, vaikka sovellus jumiutuisi täysin.

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

crashReporter.start({
  productName: 'MyElectronApp',
  companyName: 'MyCompany',
  submitURL: 'http://localhost:1127/post',
  uploadToServer: true,
});

app.whenReady().then(() => {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
  });
  mainWindow.loadFile('index.html');

  // Simulate a crash after 5 seconds for testing
  setTimeout(() => {
    console.log('Simulating main process crash...');
    process.crash(); // This will crash the app!
  }, 5000);
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    // In macOS, usually re-create a window in the app when the dock icon is clicked
  }
});

Renderöintiprosessin kaatumisten käsittely

crashReporter valvoo myös renderöintiprosesseja. Jos renderöintiprosessi kaatuu esimerkiksi JavaScript-virheen tai verkkosisällössä olevan natiivimoduuliongelman vuoksi, Electron tunnistaa sen.

Tämän jälkeen pääprosessi yrittää lähettää kaatumisraportin pääprosessin kaatumista vastaavalla tavalla. Voitte kuunnella 'render-process-gone'-tapahtumaa BrowserWindow-oliossa renderöintiprosessin kaatumisten havaitsemiseksi.

Lisäkontekstin liittäminen

Kaatumisraportit ovat hyödyllisempiä, kun niiden yhteydessä on kontekstia! Voitte lisätä kaatumisraportteihin mukautettuja avain–arvo-pareja käyttämällä crashReporter.addExtraParameter()-metodia.

Näin voitte sisällyttää esimerkiksi käyttäjän tunnisteen, sovelluksen nykyisen tilan tai tietyt ominaisuusliput, joista voi olla paljon hyötyä virheenkorjauksessa.

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

crashReporter.start({
  productName: 'MyElectronApp',
  companyName: 'MyCompany',
  submitURL: 'http://localhost:1127/post',
  uploadToServer: true,
});

// Add extra parameters BEFORE a crash occurs
crashReporter.addExtraParameter('userId', 'user123');
crashReporter.addExtraParameter('appState', 'editing_document');

app.whenReady().then(() => {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
  });
  mainWindow.loadFile('index.html');

  // Simulate a crash for demonstration
  setTimeout(() => {
    console.log('Simulating crash with extra data...');
    process.crash();
  }, 5000);
});

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    // In macOS, usually re-create a window in the app when the dock icon is clicked
  }
});

Kaatumisraporttien vastaanottaminen

Kun Electron lähettää kaatumisraportin, sen vastaanottamiseen tarvitaan palvelin. Palvelin yleensä tallentaa raportin ja saattaa käsitellä sitä edelleen, esimerkiksi symbolikoida pinojäljet.

Voitte määrittää oman yksinkertaisen HTTP-päätepisteen tai käyttää erikoistunutta kaatumisraportointipalvelua, kuten Sentryä, Bugsnagia tai Crashlyticsia. Nämä palvelut tarjoavat kattavat hallintapaneelit ja analytiikan.

Parhaat käytännöt ja tietosuoja

Kun toteutatte kaatumisraportointia, pitäkää seuraavat asiat mielessä:

  • Tietosuoja: Varmistakaa, ettette lähetä kaatumisraporteissa arkaluonteisia käyttäjätietoja.
  • Suostumus: Ilmoittakaa käyttäjille kaatumisraporttien lähettämisestä ja antakaa heille mahdollisuuksien mukaan mahdollisuus kieltäytyä.
  • Testaus: Testatkaa kaatumisraportoinnin määritykset aina perusteellisesti varmistaaksenne, että raportit lähetetään ja vastaanotetaan oikein.
  • Symbolikointi: Natiivikaatumisissa raportit on symbolikoitava, jotta pinojäljet saadaan ihmisen luettavaan muotoon.

Kaatumisraportoinnin tietovisa

Testatkaa ymmärrystänne Electronin kaatumisraportoinnista.

Yhteenveto ja seuraavat vaiheet

Tässä oppitunnissa opitte määrittämään kaatumisraportoinnin Electron-sovellukseen. Käsittelimme crashReporter-moduulin alustamisen, sen asetusten määrittämisen, kaatumisten simuloinnin ja lisätietojen lisäämisen raportteihin.

Kaatumisraportoinnin toteuttaminen on tärkeä askel vakaiden ja luotettavien työpöytäsovellusten rakentamisessa. Seuraavaksi voitte tutustua tiettyihin kaatumisraportointipalveluihin, joiden avulla kerättyjä tietoja voi hallita ja analysoida tehokkaammin!

Aloita maksutta

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 ”Kaatumisraportointi” ilmainen?

Kyllä – oppitunnin ”Kaatumisraportointi” 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 ”Kaatumisraportointi”?

Määrittäkää kaatumisraportointi keräämään ja lähettämään kaatumislokeja automaattisesti, jotta voitte tunnistaa ja korjata sovelluksen kriittiset ongelmat. 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 3/4.

Kuinka kauan ”Kaatumisraportointi”-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

  1. Sovelluksen elinkaaritapahtumien hallinta
  2. Automaattisten päivitysten toteuttaminen
  3. Kaatumisraportointi
  4. Deep linking ja protokollakäsittelijät
← Takaisin: Electron-työpöytäsovellusten kehitys