Skip to main content
Integriere Mellowtel in deine Windows-Desktop-Anwendung, um Nutzern zu ermöglichen, ihre ungenutzte Internetbandbreite im Austausch gegen Belohnungen oder Premium-Funktionen zu teilen.
Die Zustimmung des Nutzers ist obligatorisch. Das SDK wirft eine InvalidOperationException, wenn du StartAsync() aufrufst, ohne dass der Nutzer zugestimmt hat.

Voraussetzungen

  • Ein Mellowtel-Konto und eine Integrations-ID vom Dashboard. Jede Desktop-App erhält eine eigene, eindeutige Integrations-ID.
  • .NET 10 SDK
  • Windows 10 oder Windows 11
  • Eine .NET-Desktop-Anwendung (Konsole, WPF oder Windows Forms)
Möchtest du eine vollständige, praxisnahe Integration sehen, bevor du dies in deine eigene App einbindest? Das mellowtel-pomodoro-windows WPF-Beispiel zeigt den vollständigen Ablauf von der Einwilligungsdialog, über den Einstellungsschalter bis hin zum Hintergrundlebenszyklus.

Installation

Mellowtel für Windows wird auf NuGet als Mellowtel.Win bereitgestellt.

1. Paket installieren

Aus deinem Projektverzeichnis:
Oder füge eine PackageReference zu deinem .csproj hinzu:

2. In deinen Code einfügen

Ersetze YOUR_INTEGRATION_ID durch die Integrations-ID von deinem Mellowtel-Dashboard und setze PluginId auf einen stabilen Bezeichner für deine App. ShowConsentDialog() ist deine eigene UI, die nur dann true zurückgibt, wenn der Nutzer ausdrücklich zustimmt. Siehe Nutzereinwilligung unten.

Konfigurationsoptionen

MellowtelOptions ermöglicht es dir, einige Dinge anzupassen:
EigenschaftTypStandardBeschreibung
PluginIdstring"mellowtel-win"Stabiler Bezeichner für deine App. Setze dies auf etwas Einzigartiges.
MaxDailyRateintEingebauter StandardMaximale Anfragen, die das SDK pro Tag bearbeitet.
DisableLogsbooltrueSetze auf false, um SDK-Logs während der Entwicklung zu aktivieren.

Beispiele nach Anwendungstyp

Beobachten des Verbindungsstatus

Die Mellowtel-Instanz bietet ein ConnectionStateChanged-Event, das ausgelöst wird, wann immer die zugrunde liegende WebSocket-Verbindung zum Mellowtel-Backend verbunden oder getrennt wird. Die oben gezeigten WPF- und Windows Forms-Beispiele abonnieren es, um einen Statusindikator zu steuern. Die Nutzlast ist ein bool, wobei true verbunden und false getrennt bedeutet. Das Event wird in einem Hintergrundthread ausgelöst, daher müssen UI-Frameworks, die Thread-Affinität erzwingen, Aktualisierungen auf den UI-Thread übertragen. In WPF verwende Dispatcher.Invoke, und in Windows Forms Control.Invoke (beide im obigen Beispiel gezeigt).
Über das WPF-async void OnClosing-Muster. Das oben gezeigte WPF-Beispiel verwendet protected override async void OnClosing, was die einfachste Form ist, aber ein subtiles Problem hat: base.OnClosing(e) wird synchron aufgerufen, während StopAsync() noch wartet, sodass das Fenster geschlossen werden kann, bevor die Bereinigung abgeschlossen ist. Für die meisten Apps ist dies in Ordnung, da der Prozess unmittelbar danach beendet wird. Wenn du einen garantierten ordnungsgemäßen Shutdown benötigst (zum Beispiel, um Telemetrie zu flushen), folge dem von Microsoft dokumentierten Deferral-Muster, bei dem du e.Cancel = true setzt, deine asynchrone Arbeit awaitest und dann das Fenster explizit schließt.

Nutzereinwilligung

Das Anzeigen eines Einwilligungsdialogs ist obligatorisch. Das SDK erzwingt dies: StartAsync() wirft eine InvalidOperationException, wenn der Nutzer nicht zugestimmt hat.

Was dein Einwilligungsdialog enthalten muss

1

Erkläre, was Mellowtel macht

Verwende einfache Sprache. Beispiel: “Diese App verwendet Mellowtel, um deine ungenutzte Internetbandbreite zu teilen. Dadurch kannst du [Vorteil/Funktion] nutzen. Du kannst jederzeit in den Einstellungen abmelden.”
2

Gib den Nutzern eine klare Wahl

Füge deutliche Optionen zum Akzeptieren und Ablehnen hinzu.
3

Verlinke zu Richtlinien

Füge Links zu den Nutzungsbedingungen und der Datenschutzrichtlinie hinzu.

Erlaube Nutzern, ihre Zustimmung in den Einstellungen zu ändern

Für reichhaltigere UI (zum Beispiel, um anzuzeigen, wann der Nutzer erstmals zugestimmt hat), gibt GetOptInDetails() den Opt-in-Status zusammen mit den Zeitstempeln für Opt-in und Opt-out zurück:

Fehlerbehebung

  1. Stelle sicher, dass dein Projekt auf .NET 10 oder höher abzielt. Mellowtel.Win erfordert net10.0.
  2. Leere den NuGet-Cache und stelle wieder her:
StartAsync() erfordert ausdrückliche Zustimmung. Rufe OptIn() auf, nachdem dein Einwilligungsdialog ein positives Ergebnis zurückgibt, und dann StartAsync(). Für ein leises Fortsetzen bei nachfolgenden Starts verwende StartIfOptedInAsync(), das eine No-Op ist, wenn der Nutzer nicht zugestimmt hat.

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.