Γρήγορες, ανώδυνες, αυτόματες ενημερώσεις στο Electron

Ας το παραδεχτούμε: οι περισσότεροι χρήστες δεν θα επιστρέψουν στον ιστότοπό σας και δεν θα κατεβάσουν τις ενημερώσεις για την ολοκαίνουργια εφαρμογή σας Electron. Αντ 'αυτού, θα πρέπει να δημιουργήσετε κάποιο είδος συστήματος αυτόματης ενημέρωσης.

Δυστυχώς, η ηλεκτρονική τεκμηρίωση για αυτό δεν είναι ούτε πολύ εύκολο να βρεθεί ούτε να ακολουθηθεί. Εδώ, θα σας καθοδηγήσω σε μια γρήγορη διαδικασία για τη ρύθμιση ενός αυτόματου ενημερωμένου προγράμματος, χρησιμοποιώντας το GitHub ως κεντρικό υπολογιστή.

Ρύθμιση του αποθετηρίου

Για να δημοσιεύσει εκ μέρους σας, το electron-builder χρειάζεται ένα διακριτικό πρόσβασης GitHub. Εάν δεν γνωρίζετε τι είναι αυτά ή πώς να δημιουργήσετε ένα, ανατρέξτε στον γρήγορο οδηγό του GitHub.

Το Electron-builder χρειάζεται ένα διακριτικό με πρόσβαση στο πεδίο repo. Δημιουργήστε ένα όπως περιγράφεται στον σύνδεσμο και αντιγράψτε το κάπου ασφαλές (θα εμφανιστεί μόνο το διακριτικό μία φορά!).

Ρύθμιση της βιβλιοθήκης

Θα χρησιμοποιήσουμε το electron-builder για να συσκευάσουμε την εφαρμογή μας, οπότε ας ξεκινήσουμε εγκαθιστώντας την:

npm install electron-builder --save-dev

Ας εγκαταστήσουμε επίσης το electron-updater για τον χειρισμό των αυτόματων ενημερώσεων:

npm install electron-updater --save

Στη συνέχεια, πρέπει να διαμορφώσουμε το build μας. Στην package.jsonπροσθήκη αυτού του αποσπάσματος:

Ας αναλύσουμε αυτό λίγο-λίγο:

  • Ο repositoryσύνδεσμος είναι αρκετά αυτονόητος - απλώς θυμηθείτε να τον αντικαταστήσετε με τον δικό σας!
  • Το buildσενάριο θα δημιουργήσει την εφαρμογή σας τοπικά, χωρίς δημοσίευση.
  • Το shipσενάριο θα δημιουργήσει και θα δημοσιεύσει την εφαρμογή σας.

Σημείωση για προγραμματιστές React : το electron-builder και το create-react-app έχουν κάποιες διενέξεις από προεπιλογή. Δημιούργησα μια γεννήτρια που δημιουργεί μια εφαρμογή electron + react + electron-builder με μηδενική διαμόρφωση. Μπορείτε να το βρείτε εδώ.

Τώρα δημιουργήστε ένα αρχείο electron-builder.ymlμε το ακόλουθο περιεχόμενο:

  • Αυτό appIdείναι το όνομα της αίτησής σας στο μητρώο λειτουργικού συστήματος. Μπορείτε να το επιλέξετε ελεύθερα.
  • Η providerείναι η πλατφόρμα που θα αποθηκεύσει εγκατάστασης της εφαρμογής σας.
  • Το tokenείναι το διακριτικό πρόσβασης GitHub. Αντικαταστήστε το με αυτό που δημιουργήσατε νωρίτερα.

Θυμηθείτε να προσθέσετε αυτό το αρχείο στο .gitignoreέτσι ώστε να μην μοιράζεστε το διακριτικό σας με ολόκληρο τον κόσμο! ;)

Χειρισμός της λογικής ενημέρωσης

Τώρα πρέπει να διαμορφώσουμε τη λογική ενημέρωσης στην εφαρμογή Electron. Ενσωματώστε το στο αρχείο εισόδου σας (συνήθως index.jsή electron.js). Εάν δημιουργείτε μια ολοκαίνουργια εφαρμογή, μπορείτε απλώς να αντιγράψετε και να επικολλήσετε τον παρακάτω κώδικα:

Οι μονάδες IPC είναι ο τυπικός τρόπος αποστολής μηνυμάτων μεταξύ διεργασιών στο ηλεκτρονικό. Μπορείτε να μάθετε περισσότερα για αυτά εδώ.

Ο κωδικός είναι αρκετά αυτονόητος και χειρίζεται την ηλεκτρονική πλευρά της ενημέρωσης. Τώρα πρέπει να ειδοποιήσουμε τον χρήστη.

Ακολουθεί ένα παράδειγμα σελίδας HTML. Εμφανίζει ένα κουμπί του οποίου η λεζάντα "δεν είναι έτοιμες ενημερώσεις" ή "έτοιμη νέα έκδοση!" Όταν κάνετε κλικ στο κουμπί, καλείται μια μέθοδος που λέει στο Electron να κλείσει και να εγκαταστήσει τις νέες ενημερώσεις.

Και τέλος, πλοίο

Όταν είστε έτοιμοι να δημοσιεύσετε, επεξεργαστείτε το versionπεδίο στο package.jsonκαι εκτελέστε την ακόλουθη εντολή:

npm run ship

Μεταβείτε στη σελίδα GitHub του αποθετηρίου σας και κάντε κλικ στην επιλογή "κυκλοφορίες" (βρίσκεται στην ίδια γραμμή με το "commits"και «υποκατάστημα»). Εκεί, θα βρείτε ένα προσχέδιο κυκλοφορίας. Κάντε κλικ στην «επεξεργασία»και στη συνέχεια «δημοσίευση κυκλοφορίας».

Μην πανικοβληθείτε εάν το κουμπί εμφανίζει "καμία ενημέρωση έτοιμη" κατά την εκκίνηση της εφαρμογής. Αυτό θα αλλάξει μόνο αφού ολοκληρωθεί η λήψη της νέας έκδοσης.

Αν θέλετε να χρησιμοποιήσετε ένα έργο που λειτουργεί για να μάθετε περισσότερα και να ξεκινήσετε, μπορείτε να κλωνοποιήσετε αυτό το παράδειγμα αποθετηρίου.

Εάν βρήκατε αυτό το άρθρο χρήσιμο, φροντίστε να χειροκροτήσετε;