Попередні вимоги
- Обліковий запис 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 дозволяє налаштувати кілька параметрів:
| Властивість | Тип | За замовчуванням | Опис |
|---|---|---|---|
PluginId | string | "mellowtel-win" | Стабільний ідентифікатор для вашого додатку. Встановіть це на щось унікальне. |
MaxDailyRate | int | Вбудоване значення за замовчуванням | Максимальна кількість запитів, які SDK обробляє за день. |
DisableLogs | bool | true | Встановіть false, щоб увімкнути журнали SDK під час розробки. |
Приклади за типом додатку
- Консольний додаток
- WPF Додаток
- Windows Forms
Спостереження за станом підключення
Екземпляр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 вашої асинхронної роботи, а потім явно закриваєте вікно.Згода користувача
Що має включати ваш діалог згоди
Поясніть, що робить Mellowtel
Використовуйте просту мову. Приклад: “Цей додаток використовує Mellowtel для обміну вашою невикористаною пропускною здатністю інтернету. Це дозволяє вам [користь/функція]. Ви можете відмовитися в будь-який час у налаштуваннях.”
Посилання на політики
Включіть посилання на Умови використання та Політику конфіденційності.
Дозвольте користувачам змінювати свою згоду в налаштуваннях
GetOptInDetails() повертає статус згоди разом з датами згоди та відмови:
Усунення несправностей
Помилка "Пакет не знайдено"
Помилка "Пакет не знайдено"
- Переконайтеся, що ваш проект націлений на .NET 10 або пізнішу версію.
Mellowtel.Winвимагаєnet10.0. - Очистіть кеш NuGet і відновіть:
Помилка "InvalidOperationException: Користувач не погодився"
Помилка "InvalidOperationException: Користувач не погодився"
StartAsync() вимагає явної згоди. Викличте OptIn() після того, як ваш діалог згоди поверне позитивний результат, потім викличте StartAsync(). Для безмовного відновлення при наступних запусках використовуйте StartIfOptedInAsync(), що нічого не робить, коли користувач не погодився.Орієнтовний час завершення: 10-15 хвилин. Якщо вам потрібна допомога або у вас є відгуки, зв’яжіться з нами за адресою info@mellowtel.com або приєднуйтесь до нашої спільноти в Discord.