Integre o Mellowtel no seu aplicativo desktop Windows para permitir que os usuários compartilhem sua largura de banda de internet não utilizada em troca de recompensas ou recursos 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.
Pré-requisitos
- Uma conta Mellowtel e ID de Integração do painel de controle. Cada aplicativo desktop recebe seu próprio ID de Integração exclusivo.
- SDK do .NET 10
- Windows 10 ou Windows 11
- Um aplicativo desktop .NET (Console, WPF ou Windows Forms)
Quer ver uma integração completa e real antes de implementar no seu próprio aplicativo? O exemplo WPF mellowtel-pomodoro-windows mostra todo o fluxo de ponta a ponta: diálogo de consentimento, alternância de configurações e ciclo de vida em segundo plano.
Instalação
O Mellowtel para Windows é distribuído no NuGet comoMellowtel.Win.
1. Instale o Pacote
Do diretório do seu projeto:PackageReference ao seu .csproj:
2. Adicione ao Seu Código
Substitua
YOUR_INTEGRATION_ID pelo ID de Integração do seu painel Mellowtel e defina PluginId para um identificador estável para o seu aplicativo. ShowConsentDialog() é sua própria interface que retorna true apenas quando o usuário concorda explicitamente. Veja Consentimento do Usuário abaixo.Opções de configuração
MellowtelOptions permite ajustar algumas coisas:
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
PluginId | string | "mellowtel-win" | Identificador estável para o seu aplicativo. Defina isso para algo único. |
MaxDailyRate | int | Padrão embutido | Máximo de solicitações que o SDK irá lidar por dia. |
DisableLogs | bool | true | Defina como false para habilitar logs do SDK durante o desenvolvimento. |
Exemplos por Tipo de Aplicativo
- Aplicativo de Console
- Aplicativo WPF
- Windows Forms
Observando o estado da conexão
A instânciaMellowtel expõe um evento ConnectionStateChanged que é disparado sempre que o WebSocket subjacente para o backend do Mellowtel conecta ou desconecta. Os exemplos de WPF e Windows Forms acima se inscrevem nele para acionar um indicador de status. A carga útil é um bool onde true significa conectado e false significa desconectado.
O evento é disparado em uma thread de segundo plano, então frameworks de UI que impõem afinidade de thread devem direcionar atualizações para a thread de UI. No WPF use Dispatcher.Invoke, e no Windows Forms use Control.Invoke (ambos mostrados nos exemplos acima).
Sobre o padrão WPF
async void OnClosing. O exemplo WPF acima usa protected override async void OnClosing, que é a forma mais simples, mas tem um problema sutil: base.OnClosing(e) é chamado de forma síncrona enquanto StopAsync() ainda está aguardando, então a janela pode fechar antes que a limpeza termine. Para a maioria dos aplicativos, isso é aceitável porque o processo sai imediatamente depois. Se você precisar de um encerramento gracioso garantido (por exemplo, para enviar telemetria), siga o padrão de adiamento documentado pela Microsoft onde você define e.Cancel = true, await seu trabalho assíncrono e então fecha a janela explicitamente.Consentimento do Usuário
O que seu diálogo de consentimento deve incluir
Explique o que o Mellowtel faz
Use linguagem simples. Exemplo: “Este aplicativo usa o Mellowtel para compartilhar sua largura de banda de internet não utilizada. Isso permite que você [benefício/recurso]. Você pode optar por sair a qualquer momento nas configurações.”
Link para políticas
Inclua links para os Termos de Serviço e Política de Privacidade.
Permita que os usuários alterem seu consentimento nas configurações
GetOptInDetails() retorna o status de opt-in junto com as datas de opt-in e opt-out:
Solução de Problemas
Erro "Pacote não encontrado"
Erro "Pacote não encontrado"
- Certifique-se de que seu projeto tem como alvo .NET 10 ou posterior.
Mellowtel.Winrequernet10.0. - Limpe o cache do NuGet e restaure:
Erro "InvalidOperationException: User has not opted in"
Erro "InvalidOperationException: User has not opted in"
StartAsync() requer consentimento explícito. Chame OptIn() após seu diálogo de consentimento retornar um resultado positivo, então chame StartAsync(). Para retomar silenciosamente em lançamentos subsequentes, use StartIfOptedInAsync(), que não faz nada quando o usuário não optou por participar.Tempo estimado para conclusão: 10-15 minutos. Se precisar de ajuda ou tiver feedback, entre em contato conosco em info@mellowtel.com ou junte-se à nossa comunidade no Discord.