Integreer Mellowtel in je cross-platform Electron-applicatie om gebruikers hun ongebruikte internetbandbreedte te laten delen in ruil voor beloningen of premium functies. De Electron SDK werkt overal waar Electron draait (macOS, Windows en 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.
Vereisten
- Een Mellowtel-account en configuratiesleutel (verkrijg deze via het dashboard).
- Een Electron-applicatie met toegang tot het hoofdproces.
Installatie
1. Configureer npm Authenticatie
Maak een.npmrc bestand in de hoofdmap van je project om npm naar het Mellowtel GitHub Packages-register te wijzen en de installatie te verifiëren:
YOUR_NPM_TOKEN door de onderstaande installatietoken. Klik om te onthullen en gebruik vervolgens het kopieericoon op het codeblok om het naar je klembord te kopiëren.
Installatietoken onthullen
Installatietoken onthullen
2. Installeer het Pakket
Installeer de Electron SDK vanuit de hoofdmap van je project:3. Voeg toe aan je Code
Importeer de SDK in je Electron-hoofdprocesbestand (meestalmain.ts of main.js), installeer het met je configuratiesleutel, vraag toestemming aan de gebruiker en roep vervolgens init() aan om de service te starten.
Vervang
YOUR_CONFIGURATION_KEY door de sleutel van je Mellowtel-dashboard.new Mellowtel(configurationKey, options?)installeert de SDK. De enige beschikbare optie vandaag isdisableLogs, die standaard optruestaat. Zet het opfalsetijdens de integratie zodat je de verbindingsstatus en aanvraagactiviteit in je terminal kunt zien.requestConsent(window, incentive)rendert een natuurlijk Electron-berichtvenster gekoppeld aan hetBrowserWindowdat je doorgeeft. Het tweede argument is de prominente kop van de dialoog (bijvoorbeeld,"Krijg 3 maanden gratis"), getoond boven een vaste uitleg van wat Mellowtel doet. Het lost op naartrueals de gebruiker accepteert,falseals de gebruiker weigert of de dialoog sluit, enundefinedals toestemming al is vastgelegd. De SDK slaat de opt-in beslissing automatisch op, dus je hoeft daarnaoptIn()niet aan te roepen.init()gooit alleen een fout wanneerconfigurationKeyleeg is. Als de gebruiker niet heeft ingestemd, logt het en keert het stilzwijgend terug. Anders opent het een WebSocket naar de backend van Mellowtel. De oproep is niet-blokkerend voor de renderer UI, dus vensters blijven responsief terwijl de verbinding wordt gelegd.
Voorkomen van systeemdialoogonderbrekingen (aanbevolen)
De SDK wordt geleverd met een optionele helper,setupMellowtelApp(), die Electron command-line vlaggen configureert om systeemdialoogvensters (autovulpop-ups, vertaalbalken, NTLM / Kerberos-auth prompts, wachtwoordbeheerintegratie, media-overlays, eerste-run dialoogvensters) te onderdrukken die anders je gebruikers zouden onderbreken wanneer de verborgen vensters van Mellowtel verzoeken op de achtergrond verwerken.
Roep het aan bovenaan je hoofdprocesbestand, voor app.whenReady(), en importeer het samen met de standaardexport van @mellowtel-inc/mellowtel-electron. Zie de upstream README voor het canonieke gebruik.
Gebruikerstoestemming
Je hebt twee mogelijkheden voor het afhandelen van toestemming:- Gebruik de ingebouwde native dialoog via
requestConsent(window, incentive). Dit is de snelste methode en is wat de bovenstaande snippet laat zien. Het rendert een native Electrondialog.showMessageBoxmet je incentive-tekst als de kop en slaat de beslissing van de gebruiker automatisch op. - Bouw je eigen toestemmings-UI en stuur de SDK aan via
optIn(),optOut(), engetOptInStatus(). Gebruik dit als je aangepaste branding, rijkere uitleg of lokalisatie wilt die verder gaat dan wat de native dialoog biedt.
Wat je toestemmingsdialoog moet bevatten
Leg uit wat Mellowtel doet
Gebruik eenvoudige taal. Voorbeeld: “Deze app gebruikt Mellowtel om je ongebruikte internetbandbreedte te delen. In ruil daarvoor krijg je [voordeel/functie]. Je kunt op elk moment uitschrijven in de instellingen.”
Link naar beleidsregels
Voeg links toe naar de Servicevoorwaarden en Privacybeleid.
Laat gebruikers later hun toestemming wijzigen
Mellowtel biedt een ingebouwde instellingen dialoog viashowConsentSettings(window). Het rendert een native dialoog met Opt In / Opt Out knoppen die overeenkomen met de huidige status van de gebruiker, en roept intern optIn() of optOut() aan (plus het opnieuw verbinden van de WebSocket bij opt-in) wanneer de gebruiker schakelt. Koppel het aan een menu-item of instellingenknop in je app zodat gebruikers hun keuze kunnen herzien.
Als je liever je eigen instellingen scherm bouwt, roep getOptInStatus() aan om de huidige status te lezen en optIn() / optOut() om deze te wijzigen.
Methode Referentie
DeMellowtel klasse stelt de volgende openbare methoden bloot. Alle zijn beschikbaar op de instantie die je hebt gemaakt met new Mellowtel(configurationKey, options?).
Levenscyclus
init(): Promise<void>start de service als de gebruiker heeft ingestemd, of keert stilzwijgend vroeg terug als dat niet het geval is. Gooi alleen wanneer de configuratiesleutel leeg is.requestConsent(window: BrowserWindow, incentive: string): Promise<boolean | undefined>toont de ingebouwde native toestemmingsdialoog en slaat het resultaat op. Retourneerttruebij acceptatie,falsebij weigering of sluiting,undefinedals toestemming al was gegeven.showConsentSettings(window: BrowserWindow): Promise<void>toont de ingebouwde beheer-toestemming dialoog. De SDK behandelt de opt-in / opt-out overgangen intern wanneer de gebruiker hun keuze wijzigt.
optIn(): Promise<void>markeert de gebruiker als ingestemd zonder een dialoog te tonen. Gebruik dit alleen na het verzamelen van toestemming via je eigen UI.optOut(): Promise<void>markeert de gebruiker als uitgeschreven en sluit de actieve WebSocket-verbinding.getOptInStatus(): boolean | undefinedretourneert de huidige opt-in status, ofundefinedals de gebruiker nooit een keuze heeft gemaakt.getNodeId(): stringretourneert de Mellowtel knooppuntidentificatie voor deze installatie. Handig bij het indienen van supporttickets.
electron-store en overleven app herstarts. Toon ze in je eigen UI als je gebruikers de impact van hun opt-in wilt laten zien.
getTotalRequestCount(): numberretourneert het totale aantal verwerkte verzoeken sinds installatie.getDailyRequestCount(): numberretourneert het aantal verzoeken dat vandaag is verwerkt.getRequestCountForDate(date: string): numberretourneert het aantal voor een specifiekeYYYY-MM-DDdatum.getDailyRequestsHistory(): { [date: string]: number }retourneert elke dagelijkse telling als een map.getRequestCountsInRange(startDate: string, endDate: string): { [date: string]: number }retourneert tellingen voor een datumbereik.getRequestCounts(): { total: number; daily: number; dailyHistory: { [date: string]: number } }retourneert alle drie de tellers in één oproep.
Afsluiten en Levenscyclus
De Electron SDK registreert niet zijn eigenbefore-quit of will-quit handlers. Wanneer je Electron-proces afsluit, wordt de achtergrond WebSocket-verbinding samen met het proces beëindigd, en is er geen expliciete opruiming vereist aan jouw kant.
Als je Mellowtel halverwege een sessie wilt loskoppelen (bijvoorbeeld wanneer een gebruiker een “pauze” instelling in je app schakelt), roep optOut() aan. Dit wist zowel de opt-in vlag als sluit de actieve verbinding. Om opnieuw te verbinden, roep optIn() gevolgd door init() aan.
Toestemming Persistentie
De opt-in status wordt opgeslagen in het platform-standaardelectron-store configuratiepad:
- macOS:
~/Library/Application Support/<YourAppName>/config.json - Windows:
%APPDATA%\<YourAppName>\config.json - Linux:
~/.config/<YourAppName>/config.json
Problemen oplossen
"Pakket niet gevonden" fout tijdens installatie
"Pakket niet gevonden" fout tijdens installatie
- Controleer of
.npmrcin de projectroot staat, naast jepackage.json. - Zorg ervoor dat de token geen voor- of achterliggende spaties heeft.
- Wis de npm-cache en probeer opnieuw door
npm cache clean --forcete draaien gevolgd doornpm install.
"Niet gemachtigd" of 401 tijdens installatie
"Niet gemachtigd" of 401 tijdens installatie
- Controleer of de token in
.npmrccorrect en actief is. Als je het niet zeker weet, vraag een nieuwe token aan via info@mellowtel.com. - Bevestig dat de
@mellowtel-inc:registryregel aanwezig is en wijst naarhttps://npm.pkg.github.com/.
De toestemmingsdialoog verschijnt nooit
De toestemmingsdialoog verschijnt nooit
- Zorg ervoor dat je
requestConsentnaapp.whenReady()aanroept met een geldige, niet-vernietigdeBrowserWindowreferentie. - Als je
setupMellowtelApp()gebruikt, controleer of het voorapp.whenReady()wordt aangeroepen, niet erna.
"init() draait zonder fouten maar er gebeurt niets"
"init() draait zonder fouten maar er gebeurt niets"
Dit is opzettelijk.
init() keert stilzwijgend vroeg terug wanneer de gebruiker niet heeft ingestemd. Controleer getOptInStatus() om te bevestigen. Als het undefined of false retourneert, voer dan eerst requestConsent uit. Merk op dat de interne “Gebruiker heeft niet ingestemd” log wordt onderdrukt wanneer disableLogs op zijn standaard blijft (zie “Logs zijn stil” hieronder), dus de terminal geeft je geen signaal in beide gevallen totdat je die vlag omdraait.Logs zijn stil
Logs zijn stil
De
disableLogs constructoroptie staat standaard op true. Geef { disableLogs: false } als het tweede argument aan de constructor tijdens de integratie om verbindingsstatus en aanvraagactiviteit in je terminal te tonen. Dit is ook de snelste manier om een “niet ingestemd” stille no-op (zie hierboven) te onderscheiden van een echte verbindingsfout.Geschatte tijd om te voltooien: 10-15 minuten. Als je hulp nodig hebt of feedback hebt, neem dan contact met ons op via info@mellowtel.com of sluit je aan bij onze Discord-gemeenschap.