Dieses Projekt hat den ersten Preis gewonnen? beim Telegram Lightweight Client Contest und ist jetzt ein offizieller Telegram-Client, der für jedermann unter web.telegram.org/a verfügbar ist.
Gemäß den ursprünglichen Wettbewerbsregeln weist es nahezu keine Abhängigkeiten auf und basiert vollständig auf seinem eigenen Teact-Framework (das das React-Paradigma neu implementiert). Es verwendet auch eine benutzerdefinierte Version von GramJS als MTProto-Implementierung.
Das Projekt umfasst viele technologisch fortschrittliche Funktionen, moderne Web-APIs und -Techniken: WebSockets, Web Worker und WebAssembly, mehrstufiges Caching und PWA, Sprachaufzeichnung und Medienstreaming, Kryptographie und rohe Binärdatenoperationen, optimistische und progressive Schnittstellen, kompliziertes CSS/ Canvas-/SVG-Animationen, reaktive Datenströme und vieles mehr.
Fühlen Sie sich frei, es zu erkunden, Feedback zu geben und einen Beitrag zu leisten.
mv .env.example .env
npm i
Rufen Sie die API-ID und den API-Hash auf my.telegram.org ab und füllen Sie die .env
Datei aus.
npm run dev
Starten Sie Ihren Entwicklungsserver und suchen Sie den GramJS-Worker im Konsolenkontext.
Alle Konstruktoren und Funktionen sind in der globalen GramJs
Variable verfügbar.
Führen Sie npm run gramjs:tl full
aus, um Zugriff auf alle verfügbaren Telegram-Anfragen zu erhalten.
Beispielverwendung:
await invoke ( new GramJs . help . GetAppConfig ( ) )
Electron ermöglicht die Erstellung einer nativen Anwendung, die unter Windows, macOS und Linux installiert werden kann.
npm run dev:electron
Führen Sie Electron im Entwicklungsmodus aus, starten Sie gleichzeitig drei Prozesse und achten Sie auf Änderungen: main (Hauptprozess von Electron), Renderer (FE-Code) und Webpack für Electron (kompiliert den Hauptprozess von Electron aus TypeScript).
npm run electron:webpack
Der Hauptprozesscode für Electron, der die Vorladefunktionalität umfasst, ist in TypeScript geschrieben und wird mithilfe der Konfiguration webpack-electron.config.js
kompiliert, um JavaScript-Code zu generieren.
npm run electron:build
Bereiten Sie den Renderer-Build (FE-Code) vor, kompilieren Sie den Electron-Hauptprozesscode, installieren und erstellen Sie native Abhängigkeiten, wird vor dem Packen oder Veröffentlichen verwendet.
npm run electron:staging
Erstellen Sie Pakete für macOS, Windows und Linux in dist-electron
-Ordnern mit APP_ENV
als staging
(ermöglicht das Öffnen von DevTools, enthält Sourcemaps und minimiert nicht den erstellten JavaScript-Code). Kann zur manuellen Verteilung und zum Testen gepackter Anwendungen verwendet werden.
npm run electron:production
Erstellen Sie Pakete für macOS, Windows und Linux in dist-electron
-Ordnern mit APP_ENV
als production
(deaktivierte DevTools, minimierter erstellter JavaScript-Code), die zur manuellen Verteilung und zum Testen gepackter Anwendungen verwendet werden können.
npm run deploy:electron
Erstellen Sie Pakete für macOS, Windows und Linux im Ordner dist-electron
und veröffentlichen Sie die Version auf GitHub, was die Unterstützung automatischer Updates ermöglicht. Weitere Informationen finden Sie im GitHub-Release-Workflow.
Um den Code Ihrer Anwendung zu signieren, gehen Sie folgendermaßen vor:
/certs
im login
Ihres Schlüsselbunds.Developer ID - G2
-Zertifikat von der Apple PKI-Seite herunter und installieren Sie es.key > Get Info > Access Control
. Stellen Sie dort unten sicher, dass Ihre Anwendung (Xcode) in der Liste Always allow access by these applications
aufgeführt ist, und stellen Sie sicher, Confirm before allowing access
aktiviert ist.Weitere Informationen finden Sie in der offiziellen Dokumentation.
Die Beglaubigung der Anwendung erfolgt automatisch im Electron-Builder-Modul, das die Übergabe der Umgebungsvariablen APPLE_ID
und APPLE_APP_SPECIFIC_PASSWORD
erfordert.
So erhalten Sie ein App-spezifisches Passwort:
Um eine neue Version zu veröffentlichen, müssen Sie ein GitHub-Zugriffstoken zu .env
hinzufügen. Generieren Sie ein GitHub-Zugriffstoken, indem Sie zu https://github.com/settings/tokens/new gehen. Das Zugriffstoken sollte den Repo-Bereich/die Repo-Berechtigung haben. Sobald Sie das Token haben, weisen Sie es einer Umgebungsvariablen zu:
# .env
GH_TOKEN="{YOUR_TOKEN_HERE}"
Durch das Veröffentlichen der Konfiguration in der Konfigurationsdatei src/electron/config.yml
können Sie den Besitzer/Namen des GitHub-Repositorys festlegen.
npm run electron:publish
aus, wodurch ein neuer Versionsentwurf erstellt und Build-Artefakte in die neu erstellte Version hochgeladen werden. Die Version der erstellten Version ist dieselbe wie in package.json
.Wenn Sie ein Problem mit dieser App feststellen, informieren Sie Telegram über die Vorschlagsplattform.