前提条件
- Mellowtel アカウントと ダッシュボード からの Integration ID。各デスクトップアプリには独自の Integration ID が与えられます。
- .NET 10 SDK
- Windows 10 または Windows 11
- .NET デスクトップアプリケーション(コンソール、WPF、または Windows フォーム)
自分のアプリに組み込む前に、完全な実際の統合を見てみたいですか? mellowtel-pomodoro-windows WPF サンプルは、同意ダイアログ、設定トグル、バックグラウンドライフサイクルのフルフローを示しています。
インストール
Windows 用の Mellowtel は NuGet でMellowtel.Win として提供されています。
1. パッケージをインストールする
プロジェクトディレクトリから:.csproj に PackageReference を追加します:
2. コードに追加する
YOUR_INTEGRATION_ID を Mellowtel ダッシュボードからの Integration ID に置き換え、PluginId をアプリの安定した識別子に設定します。ShowConsentDialog() はユーザーが明示的に同意したときにのみ true を返す独自の UI です。以下の ユーザーの同意 を参照してください。設定オプション
MellowtelOptions ではいくつかの項目を調整できます:
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
PluginId | string | "mellowtel-win" | アプリの安定した識別子。ユニークなものに設定してください。 |
MaxDailyRate | int | 組み込みのデフォルト | SDK が1日に処理する最大リクエスト数。 |
DisableLogs | bool | true | 開発中に SDK ログを有効にするには false に設定します。 |
アプリケーションタイプ別の例
- コンソールアプリ
- WPF アプリ
- Windows フォーム
接続状態の監視
Mellowtel インスタンスは、Mellowtel のバックエンドへの WebSocket が接続または切断されるたびに発生する ConnectionStateChanged イベントを公開しています。上記の WPF および Windows フォームの例では、ステータスインジケーターを駆動するためにそれにサブスクライブしています。ペイロードは bool で、true は接続されていることを意味し、false は切断されていることを意味します。
イベントはバックグラウンドスレッドで発生するため、スレッドアフィニティを強制する UI フレームワークは、UI スレッドへの更新をマーシャリングする必要があります。WPF では Dispatcher.Invoke を使用し、Windows フォームでは 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 コミュニティ に参加してください。