Skip to main content
Інтегруйте Mellowtel у ваш додаток для Windows, щоб дозволити користувачам ділитися невикористаною пропускною здатністю інтернету в обмін на винагороди або преміум-функції.
Згода користувача є обов’язковою. SDK викидає InvalidOperationException, якщо ви викликаєте StartAsync() без того, щоб користувач погодився.

Попередні вимоги

  • Обліковий запис Mellowtel та Integration ID з панелі керування. Кожен додаток отримує свій унікальний Integration ID.
  • .NET 10 SDK
  • Windows 10 або Windows 11
  • Додаток на .NET (Console, WPF або Windows Forms)
Хочете побачити повну інтеграцію в реальному світі перед тим, як підключити це до свого додатку? Зразок mellowtel-pomodoro-windows для WPF показує повний потік від початку до кінця: діалог згоди, перемикач налаштувань та фоновий життєвий цикл.

Встановлення

Mellowtel для Windows доступний на NuGet як Mellowtel.Win.

1. Встановіть пакет

З вашої директорії проекту:
Або додайте PackageReference до вашого .csproj:

2. Додайте до вашого коду

Замініть YOUR_INTEGRATION_ID на Integration ID з вашої панелі керування Mellowtel, і встановіть PluginId як стабільний ідентифікатор для вашого додатку. ShowConsentDialog() — це ваш власний інтерфейс, який повертає true тільки тоді, коли користувач явно погоджується. Дивіться Згода користувача нижче.

Опції конфігурації

MellowtelOptions дозволяє налаштувати кілька параметрів:
ВластивістьТипЗа замовчуваннямОпис
PluginIdstring"mellowtel-win"Стабільний ідентифікатор для вашого додатку. Встановіть це на щось унікальне.
MaxDailyRateintВбудоване значення за замовчуваннямМаксимальна кількість запитів, які SDK обробляє за день.
DisableLogsbooltrueВстановіть false, щоб увімкнути журнали SDK під час розробки.

Приклади за типом додатку

Спостереження за станом підключення

Екземпляр Mellowtel надає подію ConnectionStateChanged, яка викликається щоразу, коли підключення WebSocket до бекенду Mellowtel підключається або відключається. Приклади для WPF та Windows Forms вище підписуються на цю подію, щоб керувати індикатором стану. Навантаження — це bool, де true означає підключено, а false означає відключено. Подія викликається у фоновому потоці, тому UI-фреймворки, які забезпечують прив’язку до потоку, повинні передавати оновлення на UI-потік. У WPF використовуйте Dispatcher.Invoke, а в Windows Forms використовуйте Control.Invoke (обидва показані у прикладах вище).
Про WPF async void OnClosing патерн. Приклад WPF вище використовує protected override async void OnClosing, що є найпростішою формою, але має тонку проблему: base.OnClosing(e) викликається синхронно, поки StopAsync() ще очікує, тому вікно може закритися до завершення очищення. Для більшості додатків це нормально, оскільки процес завершується відразу після цього. Якщо вам потрібне гарантоване плавне завершення (наприклад, щоб зберегти телеметрію), дотримуйтесь документованого Microsoft патерну відкладення, де ви встановлюєте e.Cancel = true, await вашої асинхронної роботи, а потім явно закриваєте вікно.

Згода користувача

Відображення діалогу згоди є обов’язковим. SDK це забезпечує: StartAsync() викидає InvalidOperationException, якщо користувач не погодився.

Що має включати ваш діалог згоди

1

Поясніть, що робить Mellowtel

Використовуйте просту мову. Приклад: “Цей додаток використовує Mellowtel для обміну вашою невикористаною пропускною здатністю інтернету. Це дозволяє вам [користь/функція]. Ви можете відмовитися в будь-який час у налаштуваннях.”
2

Надайте користувачам чіткий вибір

Включіть окремі варіанти Прийняти та Відхилити.
3

Посилання на політики

Дозвольте користувачам змінювати свою згоду в налаштуваннях

Для більш багатого інтерфейсу (наприклад, показуючи, коли користувач вперше погодився), GetOptInDetails() повертає статус згоди разом з датами згоди та відмови:

Усунення несправностей

  1. Переконайтеся, що ваш проект націлений на .NET 10 або пізнішу версію. Mellowtel.Win вимагає net10.0.
  2. Очистіть кеш NuGet і відновіть:
StartAsync() вимагає явної згоди. Викличте OptIn() після того, як ваш діалог згоди поверне позитивний результат, потім викличте StartAsync(). Для безмовного відновлення при наступних запусках використовуйте StartIfOptedInAsync(), що нічого не робить, коли користувач не погодився.

Орієнтовний час завершення: 10-15 хвилин. Якщо вам потрібна допомога або у вас є відгуки, зв’яжіться з нами за адресою info@mellowtel.com або приєднуйтесь до нашої спільноти в Discord.