ユーザー アクティビティのベスト プラクティス

ユーザー アクティビティは、ユーザーがアプリで開始したタスクを再開するのに役立ちます。 次のガイドラインに従って、役に立ち、明確で、適切に構造化されたアクティビティを作成します。

一般的なガイドライン

意味のあるタスクのアクティビティを作成する

ユーザーが後で戻るタスクのアクティビティを作成します。 適切な候補は次のとおりです。

  • ドキュメント - ユーザーが編集している特定のドキュメント、スプレッドシート、またはファイル。
  • プロジェクト - プロジェクト ワークスペース、デザイン、またはコードベース。
  • メディア — ユーザーが再生していた曲、ビデオ、またはポッドキャスト。
  • ゲームの進行状況 - ゲーム セッション、レベル、またはチェックポイント。

設定の表示、リストのスクロール、ページ間の移動などの簡単な操作のアクティビティは作成しないでください。

わかりやすい表示テキストを使用する

  • DisplayTextを簡潔でわかりやすい名前 ("四半期報告書" や "第 5 章: 体験" など) に設定します。
  • コンテキストまたは進行状況を示す Description を設定します (例: "編集セクション 3 — 収益分析")。
  • "無題" や "何かに取り組む" などの一般的なテキストは避けてください。

ユーザーの進行状況に応じてアクティビティを更新する

SaveAsync()定期的に呼び出して、ユーザーの現在の位置で説明を更新します。

UserActivity activity = new UserActivity("quarterly-report");
int currentPage = 3;
int totalPages = 10;

activity.VisualElements.Description = $"Page {currentPage} of {totalPages}";
await activity.SaveAsync();

アプリの種類別のアクティビティ パターン

ドキュメント ベースのアプリ

  • ドキュメント ファイルのパスまたは一意の識別子をアクティビティ ID として使用します。
  • ActivationUriを設定して、特定のドキュメントを開きます。
  • 現在のセクションまたは編集場所で Description を更新します。

ゲーム

  • 保存スロットまたはセッション ID をアクティビティ ID として使用します。
  • DisplayTextを現在のレベルまたはミッション名に設定します。
  • 説明に進行状況を含めます ("レベル 12 - 85% 完了" など)。

メディア アプリ

  • アクティビティ ID としてメディア項目識別子を使用します。
  • DisplayTextをトラック名またはエピソード名に設定します。
  • 説明に再生位置を含めます (例: "34:15 / 1:02:00")。

基幹業務アプリ

  • アクティビティ ID としてビジネス オブジェクト識別子 (注文番号、顧客 ID、ケース番号) を使用します。
  • DisplayTextをオブジェクト名または番号に設定します。
  • ユーザーがワークフローを進むにつれて頻繁に更新されます。

豊富なビジュアル ガイドライン

アクティビティのビジュアルの詳細を設定する場合:

  • タスクを識別する 1 行 DisplayText 短くします。
  • Descriptionは、段落ではなく、1 行のコンテキストまたは進行状況に使用します。
  • Attribution アイコンを設定して、アクティビティがアクティビティ履歴で認識されるようにします。
  • 他のビジュアル プロパティも設定した場合でも、常に DisplayText設定されるため、アクティビティには読み取り可能なフォールバックがあります。
UserActivity activity = new UserActivity("quarterly-report");

activity.VisualElements.DisplayText = "Quarterly Report"; // Fallback
activity.VisualElements.Description = "Page 3 of 10";

Note

このガイダンスの以前のバージョンでは、アクティビティのビジュアルとして完全なアダプティブ カード (AdaptiveCardBuilderWindows.UI.Shell 名前空間内) をアタッチすることをお勧めします。 その API は、廃止Microsoft Windowsタイムラインの一部でした。 新しいコードでは AdaptiveCardBuilder を使用しないでください。代わりに、上記の VisualElements プロパティを使用してください。

アクティブ化 URI のガイドライン

  • アプリに登録されているカスタム プロトコル スキーム (たとえば、 myapp://) を使用します。
  • タスクに直接移動するのに十分な情報を URI に含めます。
  • URI の安定性を維持します。有効期限が切れるセッション固有のトークンは含めないでください。

例:

myapp://document/quarterly-report-2026?page=12

セッション管理

  • ユーザーがタスクの作業を開始したときに UserActivitySession を作成します。
  • ユーザーが別のタスクに切り替えたときにセッションを破棄します。
  • アクティビティ チャネルごとに一度に 1 つのアクティブなセッションのみを維持します。