Prerequisiti
- Un account Mellowtel e un ID di integrazione dal dashboard. Ogni app desktop riceve un ID di integrazione unico.
- .NET 10 SDK
- Windows 10 o Windows 11
- Un’applicazione desktop .NET (Console, WPF o Windows Forms)
Vuoi vedere un’integrazione completa e reale prima di integrarla nella tua app? Il campione WPF mellowtel-pomodoro-windows mostra l’intero flusso dall’inizio alla fine: dialogo di consenso, attivazione delle impostazioni e ciclo di vita in background.
Installazione
Mellowtel per Windows è disponibile su NuGet comeMellowtel.Win.
1. Installa il pacchetto
Dalla directory del tuo progetto:PackageReference al tuo .csproj:
2. Aggiungi al tuo codice
Sostituisci
YOUR_INTEGRATION_ID con l’ID di integrazione dal tuo dashboard Mellowtel e imposta PluginId su un identificatore stabile per la tua app. ShowConsentDialog() è la tua UI personalizzata che restituisce true solo quando l’utente accetta esplicitamente. Vedi Consenso dell’utente qui sotto.Opzioni di configurazione
MellowtelOptions ti consente di regolare alcune cose:
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
PluginId | string | "mellowtel-win" | Identificatore stabile per la tua app. Impostalo su qualcosa di unico. |
MaxDailyRate | int | Predefinito integrato | Numero massimo di richieste che l’SDK gestirà al giorno. |
DisableLogs | bool | true | Imposta su false per abilitare i log dell’SDK durante lo sviluppo. |
Esempi per tipo di applicazione
- App Console
- App WPF
- Windows Forms
Osservare lo stato della connessione
L’istanzaMellowtel espone un evento ConnectionStateChanged che si attiva ogni volta che il WebSocket sottostante al backend di Mellowtel si connette o si disconnette. Gli esempi WPF e Windows Forms sopra si iscrivono a questo evento per gestire un indicatore di stato. Il payload è un bool dove true significa connesso e false significa disconnesso.
L’evento si attiva su un thread in background, quindi i framework UI che applicano l’affinità del thread devono trasferire gli aggiornamenti sul thread UI. In WPF usa Dispatcher.Invoke, e in Windows Forms usa Control.Invoke (entrambi mostrati negli esempi sopra).
A proposito del pattern WPF
async void OnClosing. L’esempio WPF sopra utilizza protected override async void OnClosing, che è la forma più semplice ma ha un problema sottile: base.OnClosing(e) viene chiamato in modo sincrono mentre StopAsync() è ancora in attesa, quindi la finestra può chiudersi prima che la pulizia sia terminata. Per la maggior parte delle app questo va bene perché il processo termina immediatamente dopo. Se hai bisogno di una chiusura garantita e ordinata (ad esempio, per inviare telemetria), segui il pattern di differimento documentato da Microsoft dove imposti e.Cancel = true, await il tuo lavoro asincrono, e poi chiudi esplicitamente la finestra.Consenso dell’utente
Cosa deve includere il tuo dialogo di consenso
Spiega cosa fa Mellowtel
Usa un linguaggio semplice. Esempio: “Questa app utilizza Mellowtel per condividere la tua larghezza di banda internet inutilizzata. Questo ti permette di [beneficio/funzionalità]. Puoi disattivare in qualsiasi momento nelle impostazioni.”
Collega alle politiche
Includi link ai Termini di servizio e alla Politica sulla privacy.
Permetti agli utenti di modificare il loro consenso nelle impostazioni
GetOptInDetails() restituisce lo stato di opt-in insieme ai timestamp di opt-in e opt-out:
Risoluzione dei problemi
Errore "Pacchetto non trovato"
Errore "Pacchetto non trovato"
- Assicurati che il tuo progetto sia destinato a .NET 10 o successivo.
Mellowtel.Winrichiedenet10.0. - Cancella la cache di NuGet e ripristina:
Errore "InvalidOperationException: User has not opted in"
Errore "InvalidOperationException: User has not opted in"
StartAsync() richiede un consenso esplicito. Chiama OptIn() dopo che il tuo dialogo di consenso restituisce un risultato positivo, quindi chiama StartAsync(). Per un ripristino silenzioso nei lanci successivi, usa StartIfOptedInAsync(), che non ha effetto quando l’utente non ha effettuato l’opt-in.Tempo stimato per completare: 10-15 minuti. Se hai bisogno di aiuto o vuoi inviare feedback, contattaci a info@mellowtel.com o unisciti alla nostra comunità Discord.