Integriere Mellowtel in deine plattformübergreifende Electron-Anwendung, um Nutzern zu ermöglichen, ihre ungenutzte Internetbandbreite im Austausch gegen Belohnungen oder Premium-Funktionen zu teilen. Das Electron SDK läuft überall dort, wo Electron läuft (macOS, Windows und Linux).Documentation Index
Fetch the complete documentation index at: https://docs.mellowtel.com/llms.txt
Use this file to discover all available pages before exploring further.
Voraussetzungen
- Ein Mellowtel-Konto und ein Konfigurationsschlüssel (erhalte deinen im Dashboard).
- Eine Electron-Anwendung mit Zugriff auf den Hauptprozess.
Installation
1. Konfiguriere npm-Authentifizierung
Erstelle eine.npmrc-Datei im Stammverzeichnis deines Projekts, um npm auf das Mellowtel GitHub Packages-Registry zu verweisen und die Installation zu authentifizieren:
YOUR_NPM_TOKEN mit dem untenstehenden Installations-Token. Klicke, um es anzuzeigen, und verwende das Kopiersymbol im Codeblock, um es in deine Zwischenablage zu kopieren.
Installations-Token anzeigen
Installations-Token anzeigen
2. Installiere das Paket
Installiere das Electron SDK aus dem Stammverzeichnis deines Projekts:3. Füge es deinem Code hinzu
Importiere das SDK in deiner Electron-Hauptprozessdatei (typischerweisemain.ts oder main.js), instanziiere es mit deinem Konfigurationsschlüssel, fordere die Zustimmung des Nutzers an und rufe dann init() auf, um den Dienst zu starten.
Ersetze
YOUR_CONFIGURATION_KEY mit dem Schlüssel aus deinem Mellowtel-Dashboard.new Mellowtel(configurationKey, options?)instanziiert das SDK. Die einzige derzeit verfügbare Option istdisableLogs, die standardmäßig auftruegesetzt ist. Setze sie auffalse, während du integrierst, damit du den Verbindungsstatus und die Anforderungsaktivität in deinem Terminal sehen kannst.requestConsent(window, incentive)rendert eine native Electron-Nachricht verankert an dasBrowserWindow, das du übergibst. Das zweite Argument ist die auffällige Überschrift des Dialogs (zum Beispiel,"Erhalte 3 Monate kostenlos"), die über einer festen Erklärung dessen, was Mellowtel tut, angezeigt wird. Es wirdtruezurückgegeben, wenn der Nutzer akzeptiert,false, wenn der Nutzer ablehnt oder den Dialog schließt, undundefined, wenn die Zustimmung bereits vorliegt. Das SDK speichert die Opt-in-Entscheidung automatisch, sodass duoptIn()danach nicht aufrufen musst.init()wirft nur, wennconfigurationKeyleer ist. Wenn der Nutzer nicht zugestimmt hat, wird es protokolliert und stillschweigend zurückgegeben. Andernfalls öffnet es eine WebSocket-Verbindung zum Backend von Mellowtel. Der Aufruf blockiert die Renderer-UI nicht, sodass Fenster reaktionsfähig bleiben, während die Verbindung hergestellt wird.
Vermeidung von Systemdialog-Unterbrechungen (empfohlen)
Das SDK wird mit einem optionalen Helfer,setupMellowtelApp(), geliefert, der Electron-Kommandozeilen-Flags konfiguriert, um Systemdialoge (Autofill-Popups, Übersetzungsleisten, NTLM / Kerberos-Authentifizierungsaufforderungen, Passwortmanager-Integration, Medien-Overlays, Erstdialoge) zu unterdrücken, die andernfalls deine Nutzer unterbrechen würden, wenn Mellowtels versteckte Fenster im Hintergrund Anfragen verarbeiten.
Rufe es oben in deiner Hauptprozessdatei auf, bevor app.whenReady(), und importiere es zusammen mit dem Standardexport von @mellowtel-inc/mellowtel-electron. Siehe das upstream README für die kanonische Verwendung.
Nutzerzustimmung
Du hast zwei Wege, um die Zustimmung zu handhaben:- Verwende den eingebauten nativen Dialog über
requestConsent(window, incentive). Dies ist der schnellste Weg und wird im obigen Snippet gezeigt. Es rendert einen nativen Electrondialog.showMessageBoxmit deinem Anreiztext als Überschrift und speichert die Entscheidung des Nutzers automatisch. - Baue deine eigene Zustimmungs-UI und steuere das SDK über
optIn(),optOut()undgetOptInStatus(). Verwende dies, wenn du benutzerdefinierte Marken, reichhaltigere Erklärungen oder Lokalisierung über das hinaus möchtest, was der native Dialog bietet.
Was dein Zustimmungsdialog enthalten muss
Erkläre, was Mellowtel macht
Verwende einfache Sprache. Beispiel: “Diese App verwendet Mellowtel, um deine ungenutzte Internetbandbreite zu teilen. Im Gegenzug erhältst du [Vorteil/Funktion]. Du kannst dich jederzeit in den Einstellungen abmelden.”
Verlinke zu Richtlinien
Füge Links zu den Nutzungsbedingungen und zur Datenschutzrichtlinie hinzu.
Lass Nutzer ihre Zustimmung später ändern
Mellowtel bietet einen eingebauten Einstellungsdialog übershowConsentSettings(window). Es rendert einen nativen Dialog mit Opt-in / Opt-out-Schaltflächen, die dem aktuellen Status des Nutzers entsprechen, und ruft intern optIn() oder optOut() auf (plus erneute Verbindung des WebSockets bei Opt-in), wenn der Nutzer umschaltet. Binde es an ein Menüelement oder eine Einstellungsschaltfläche in deiner App, damit Nutzer ihre Wahl erneut überprüfen können.
Wenn du lieber deinen eigenen Einstellungsbildschirm erstellen möchtest, rufe getOptInStatus() auf, um den aktuellen Status zu lesen, und optIn() / optOut(), um ihn zu ändern.
Methodenreferenz
DieMellowtel-Klasse stellt die folgenden öffentlichen Methoden zur Verfügung. Alle sind auf der Instanz verfügbar, die du mit new Mellowtel(configurationKey, options?) erstellt hast.
Lebenszyklus
init(): Promise<void>startet den Dienst, wenn der Nutzer zugestimmt hat, oder gibt stillschweigend frühzeitig zurück, wenn nicht. Wirft nur, wenn der Konfigurationsschlüssel leer ist.requestConsent(window: BrowserWindow, incentive: string): Promise<boolean | undefined>zeigt den eingebauten nativen Zustimmungsdialog und speichert das Ergebnis. Gibttruebei Akzeptanz,falsebei Ablehnung oder Schließen,undefined, wenn die Zustimmung bereits gegeben wurde, zurück.showConsentSettings(window: BrowserWindow): Promise<void>zeigt den eingebauten Dialog zur Verwaltung der Zustimmung. Das SDK verwaltet die Opt-in / Opt-out-Übergänge intern, wenn der Nutzer seine Wahl umschaltet.
optIn(): Promise<void>markiert den Nutzer als zugestimmt, ohne einen Dialog anzuzeigen. Verwende dies nur, nachdem du die Zustimmung über deine eigene UI eingeholt hast.optOut(): Promise<void>markiert den Nutzer als abgemeldet und schließt die aktive WebSocket-Verbindung.getOptInStatus(): boolean | undefinedgibt den aktuellen Opt-in-Status zurück oderundefined, wenn der Nutzer noch nie eine Wahl getroffen hat.getNodeId(): stringgibt die Mellowtel-Knotenkennung für diese Installation zurück. Nützlich bei der Erstellung von Support-Tickets.
electron-store gespeichert und überstehen App-Neustarts. Zeige sie in deiner eigenen UI an, wenn du den Nutzern die Auswirkungen ihres Opt-ins zeigen möchtest.
getTotalRequestCount(): numbergibt die Gesamtzahl der seit der Installation verarbeiteten Anfragen zurück.getDailyRequestCount(): numbergibt die Anzahl der heute verarbeiteten Anfragen zurück.getRequestCountForDate(date: string): numbergibt die Anzahl für ein bestimmtesYYYY-MM-DD-Datum zurück.getDailyRequestsHistory(): { [date: string]: number }gibt jede tägliche Anzahl als Karte zurück.getRequestCountsInRange(startDate: string, endDate: string): { [date: string]: number }gibt die Anzahlen für einen Datumsbereich zurück.getRequestCounts(): { total: number; daily: number; dailyHistory: { [date: string]: number } }gibt alle drei Zähler in einem Aufruf zurück.
Herunterfahren und Lebenszyklus
Das Electron SDK registriert keine eigenenbefore-quit oder will-quit Handler. Wenn dein Electron-Prozess beendet wird, wird die Hintergrund-WebSocket-Verbindung mit ihm abgebaut, und es ist keine explizite Bereinigung auf deiner Seite erforderlich.
Wenn du Mellowtel während einer Sitzung trennen möchtest (zum Beispiel, wenn ein Nutzer eine “Pause”-Einstellung in deiner App umschaltet), rufe optOut() auf. Dies löscht sowohl das Opt-in-Flag als auch die aktive Verbindung. Um die Verbindung wiederherzustellen, rufe optIn() gefolgt von init() auf.
Zustimmungsspeicherung
Der Opt-in-Status wird im plattformstandardmäßigenelectron-store-Konfigurationspfad gespeichert:
- macOS:
~/Library/Application Support/<YourAppName>/config.json - Windows:
%APPDATA%\<YourAppName>\config.json - Linux:
~/.config/<YourAppName>/config.json
Fehlerbehebung
"Paket nicht gefunden"-Fehler während der Installation
"Paket nicht gefunden"-Fehler während der Installation
- Überprüfe, ob
.npmrcim Projektstamm neben deinerpackage.jsonliegt. - Stelle sicher, dass das Token keine führenden oder nachfolgenden Leerzeichen hat.
- Leere den npm-Cache und versuche es erneut, indem du
npm cache clean --forcegefolgt vonnpm installausführst.
"Nicht autorisiert" oder 401 während der Installation
"Nicht autorisiert" oder 401 während der Installation
- Überprüfe, ob das Token in
.npmrckorrekt und aktiv ist. Wenn du unsicher bist, fordere ein neues Token von info@mellowtel.com an. - Bestätige, dass die Zeile
@mellowtel-inc:registryvorhanden ist und aufhttps://npm.pkg.github.com/zeigt.
Der Zustimmungsdialog erscheint nie
Der Zustimmungsdialog erscheint nie
- Stelle sicher, dass du
requestConsentnachdemapp.whenReady()aufgelöst wurde und mit einem gültigen, nicht zerstörtenBrowserWindow-Verweis aufrufst. - Wenn du
setupMellowtelApp()verwendest, überprüfe, ob es vorapp.whenReady()aufgerufen wird, nicht danach.
"init() läuft ohne Fehler, aber nichts passiert"
"init() läuft ohne Fehler, aber nichts passiert"
Dies ist beabsichtigt.
init() gibt stillschweigend frühzeitig zurück, wenn der Nutzer nicht zugestimmt hat. Überprüfe getOptInStatus(), um dies zu bestätigen. Wenn es undefined oder false zurückgibt, führe zuerst requestConsent aus. Beachte, dass das interne “Nutzer hat nicht zugestimmt”-Protokoll unterdrückt wird, wenn disableLogs auf seinem Standardwert bleibt (siehe “Protokolle sind still” unten), sodass das Terminal dir kein Signal gibt, bis du dieses Flag umschaltest.Protokolle sind still
Protokolle sind still
Die
disableLogs-Konstruktoroption ist standardmäßig auf true gesetzt. Übergebe { disableLogs: false } als zweites Argument an den Konstruktor, während du integrierst, um Verbindungsstatus und Anforderungsaktivität in deinem Terminal anzuzeigen. Dies ist auch der schnellste Weg, um eine “nicht zugestimmt”-stille No-Op (siehe oben) von einem echten Verbindungsfehler zu unterscheiden.Geschätzte Zeit zur Fertigstellung: 10-15 Minuten. Wenn du Hilfe benötigst oder Feedback hast, kontaktiere uns unter info@mellowtel.com oder tritt unserer Discord-Community bei.