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 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 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:
| 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 | Setze auf false, um SDK-Logs während der Entwicklung zu aktivieren. |
Beispiele nach Anwendungstyp
- Konsolen-App
- WPF-App
- Windows Forms
Beobachten des Verbindungsstatus
DieMellowtel-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
Was dein Einwilligungsdialog enthalten muss
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.”
Verlinke zu Richtlinien
Füge Links zu den Nutzungsbedingungen und der Datenschutzrichtlinie hinzu.
Erlaube Nutzern, ihre Zustimmung in den Einstellungen zu ändern
GetOptInDetails() den Opt-in-Status zusammen mit den Zeitstempeln für Opt-in und Opt-out 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: Nutzer hat nicht zugestimmt"
"InvalidOperationException: Nutzer hat nicht zugestimmt"
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.