Integriere Mellowtel in deine Windows-Desktop-Anwendung, um Nutzern zu ermöglichen, ihre ungenutzte Internetbandbreite im Austausch für Belohnungen oder Premium-Funktionen zu teilen.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 eine Integrations-ID aus dem Dashboard. Jede Desktop-App erhält eine eigene, einzigartige 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 einbaust? Das mellowtel-pomodoro-windows WPF-Beispiel zeigt den gesamten Ablauf von Anfang bis Ende: Zustimmungsdialog, Einstellungsschalter und Hintergrundlebenszyklus.
Installation
Mellowtel für Windows wird auf NuGet alsMellowtel.Win bereitgestellt.
1. Paket installieren
Aus deinem Projektverzeichnis:PackageReference zu deinem .csproj hinzu:
2. In deinen Code einfügen
Ersetze
YOUR_INTEGRATION_ID durch die Integrations-ID aus deinem Mellowtel-Dashboard und setze PluginId auf einen stabilen Bezeichner für deine App. ShowConsentDialog() ist dein eigenes UI, das nur dann true zurückgibt, wenn der Nutzer ausdrücklich zustimmt. Siehe Nutzerzustimmung unten.Konfigurationsoptionen
MellowtelOptions ermöglicht dir, einige Dinge anzupassen:
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
PluginId | string | "mellowtel-win" | Stabiler Bezeichner für deine App. Setze dies auf etwas Einzigartiges. |
MaxDailyRate | int | Eingebauter Standard | Maximale Anfragen, die das SDK pro Tag bearbeitet. |
DisableLogs | bool | true | Auf false setzen, um SDK-Logs während der Entwicklung zu aktivieren. |
Beispiele nach Anwendungstyp
- Konsolen-App
- WPF-App
- Windows Forms
Beobachten des Verbindungsstatus
DieMellowtel-Instanz stellt ein ConnectionStateChanged-Event zur Verfügung, das ausgelöst wird, wenn die zugrunde liegende WebSocket-Verbindung zum Mellowtel-Backend verbunden oder getrennt wird. Die oben gezeigten WPF- und Windows Forms-Beispiele abonnieren dieses Event, um einen Statusindikator zu steuern. Die Nutzlast ist ein bool, wobei true für verbunden und false für getrennt steht.
Das Event wird in einem Hintergrundthread ausgelöst, daher müssen UI-Frameworks, die Thread-Affinität erzwingen, Updates auf den UI-Thread umleiten. In WPF verwende Dispatcher.Invoke, und in Windows Forms Control.Invoke (beide im obigen Beispiel gezeigt).
Über das WPF-
async void OnClosing-Muster. Das obige 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 das in Ordnung, da der Prozess unmittelbar danach beendet wird. Wenn du einen garantierten sauberen Shutdown benötigst (zum Beispiel, um Telemetrie zu speichern), folge dem von Microsoft dokumentierten Deferralmuster, bei dem du e.Cancel = true setzt, deine asynchrone Arbeit abwartest und dann das Fenster explizit schließt.Nutzerzustimmung
Was dein Zustimmungsdialog enthalten muss
Erkläre, was Mellowtel macht
Verwende einfache Sprache. Beispiel: “Diese App verwendet Mellowtel, um deine ungenutzte Internetbandbreite zu teilen. Dies ermöglicht dir [Vorteil/Funktion]. Du kannst jederzeit in den Einstellungen widersprechen.”
Verlinke auf Richtlinien
Füge Links zu den Nutzungsbedingungen und der Datenschutzerklärung hinzu.
Erlaube Nutzern, ihre Zustimmung in den Einstellungen zu ändern
GetOptInDetails() den Zustimmungsstatus zusammen mit den Zeitstempeln für die Zustimmung und Ablehnung zurück:
Fehlerbehebung
"Paket nicht gefunden"-Fehler
"Paket nicht gefunden"-Fehler
- Stelle sicher, dass dein Projekt auf .NET 10 oder höher abzielt.
Mellowtel.Winerfordertnet10.0. - Leere den NuGet-Cache und stelle wieder her:
"InvalidOperationException: User has not opted in"
"InvalidOperationException: User has not opted in"
StartAsync() erfordert eine ausdrückliche Zustimmung. Rufe OptIn() auf, nachdem dein Zustimmungsdialog ein positives Ergebnis zurückgegeben hat, und dann StartAsync(). Für ein leises Fortsetzen bei nachfolgenden Starts verwende stattdessen 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 trete unserer Discord-Community bei.