Skip to main content
Integreer Mellowtel in je Windows desktop applicatie om gebruikers hun ongebruikte internetbandbreedte te laten delen in ruil voor beloningen of premium functies.
Gebruikerstoestemming is verplicht. De SDK gooit een InvalidOperationException als je StartAsync() aanroept zonder dat de gebruiker heeft ingestemd.

Vereisten

  • Een Mellowtel account en Integratie ID van het dashboard. Elke desktop app krijgt zijn eigen unieke Integratie ID.
  • .NET 10 SDK
  • Windows 10 of Windows 11
  • Een .NET desktop applicatie (Console, WPF of Windows Forms)
Wil je een complete, realistische integratie zien voordat je dit in je eigen app verwerkt? De mellowtel-pomodoro-windows WPF voorbeeld toont de volledige flow van begin tot eind: toestemmingsdialoog, instellingen toggle en achtergrondlevenscyclus.

Installatie

Mellowtel voor Windows is beschikbaar op NuGet als Mellowtel.Win.

1. Installeer het pakket

Vanuit je projectdirectory:
Of voeg een PackageReference toe aan je .csproj:

2. Voeg toe aan je code

Vervang YOUR_INTEGRATION_ID door de Integratie ID van je Mellowtel dashboard, en stel PluginId in op een stabiele identificatie voor je app. ShowConsentDialog() is je eigen UI die alleen true retourneert wanneer de gebruiker expliciet akkoord gaat. Zie Gebruikerstoestemming hieronder.

Configuratie-opties

MellowtelOptions laat je een paar dingen afstemmen:
EigenschapTypeStandaardBeschrijving
PluginIdstring"mellowtel-win"Stabiele identificatie voor je app. Stel dit in op iets unieks.
MaxDailyRateintIngebouwde standaardMaximaal aantal verzoeken dat de SDK per dag zal afhandelen.
DisableLogsbooltrueStel in op false om SDK-logs in te schakelen tijdens ontwikkeling.

Voorbeelden per applicatietype

Verbindingstoestand observeren

De Mellowtel instantie biedt een ConnectionStateChanged event dat wordt geactiveerd wanneer de onderliggende WebSocket naar Mellowtel’s backend verbinding maakt of verbreekt. De WPF en Windows Forms voorbeelden hierboven abonneren zich hierop om een statusindicator aan te sturen. De payload is een bool waarbij true betekent verbonden en false betekent niet verbonden. Het event wordt op een achtergrondthread geactiveerd, dus UI-frameworks die thread-affiniteit afdwingen moeten updates naar de UI-thread marshallen. In WPF gebruik je Dispatcher.Invoke, en in Windows Forms gebruik je Control.Invoke (beide getoond in de voorbeelden hierboven).
Over het WPF async void OnClosing patroon. Het WPF voorbeeld hierboven gebruikt protected override async void OnClosing, wat de eenvoudigste vorm is maar een subtiel probleem heeft: base.OnClosing(e) wordt synchroon aangeroepen terwijl StopAsync() nog aan het wachten is, zodat het venster kan sluiten voordat de opruiming is voltooid. Voor de meeste apps is dit prima omdat het proces onmiddellijk daarna afsluit. Als je een gegarandeerde nette afsluiting nodig hebt (bijvoorbeeld om telemetrie te flushen), volg dan het door Microsoft gedocumenteerde uitstelpatroon waarbij je e.Cancel = true instelt, je async werk afwacht en vervolgens het venster expliciet sluit.

Gebruikerstoestemming

Het tonen van een toestemmingsdialoog is verplicht. De SDK handhaaft dit: StartAsync() gooit een InvalidOperationException als de gebruiker niet heeft ingestemd.

Wat je toestemmingsdialoog moet bevatten

1

Leg uit wat Mellowtel doet

Gebruik eenvoudige taal. Voorbeeld: “Deze app gebruikt Mellowtel om je ongebruikte internetbandbreedte te delen. Dit stelt je in staat om te [voordeel/functie]. Je kunt op elk moment uitschrijven in de instellingen.”
2

Geef gebruikers een duidelijke keuze

Voeg duidelijke opties voor Accepteren en Weigeren toe.
3

Link naar beleid

Voeg links toe naar de Servicevoorwaarden en Privacybeleid.

Laat gebruikers hun toestemming wijzigen in de instellingen

Voor rijkere UI (bijvoorbeeld tonen wanneer de gebruiker voor het eerst instemde), retourneert GetOptInDetails() de opt-in status samen met de opt-in en opt-out tijdstempels:

Probleemoplossing

  1. Zorg ervoor dat je project .NET 10 of later target. Mellowtel.Win vereist net10.0.
  2. Wis de NuGet-cache en herstel:
StartAsync() vereist expliciete toestemming. Roep OptIn() aan nadat je toestemmingsdialoog een positief resultaat retourneert, en roep vervolgens StartAsync() aan. Voor stille hervatting bij volgende starts, gebruik StartIfOptedInAsync() in plaats daarvan, wat een no-op is wanneer de gebruiker niet heeft ingestemd.

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 community.