Integra Mellowtel nella tua applicazione desktop Windows per consentire agli utenti di condividere la loro larghezza di banda internet inutilizzata in cambio di ricompense o funzionalità premium.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.
Prerequisiti
- Un account Mellowtel e un ID di Integrazione dal dashboard. Ogni app desktop riceve un proprio 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, interruttore nelle impostazioni e ciclo di vita in background.
Installazione
Mellowtel per Windows è disponibile su NuGet comeMellowtel.Win.
1. Installa il Pacchetto
Dal tuo directory di 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 permette 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 viene attivato ogni volta che il WebSocket sottostante al backend di Mellowtel si connette o 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 viene attivato su un thread in background, quindi i framework UI che applicano l’affinità dei 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 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 annullare in qualsiasi momento nelle impostazioni.”
Collega alle politiche
Includi link ai Termini di Servizio e alla Politica sulla Privacy.
Permetti agli utenti di cambiare il loro consenso nelle impostazioni
GetOptInDetails() restituisce lo stato del consenso insieme ai timestamp di consenso e revoca:
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. - Pulisci 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 una ripresa silenziosa nei lanci successivi, usa StartIfOptedInAsync() invece, che non fa nulla quando l’utente non ha dato il consenso.Tempo stimato per il completamento: 10-15 minuti. Se hai bisogno di aiuto o vuoi lasciare un feedback, contattaci a info@mellowtel.com o unisciti alla nostra comunità Discord.