web-dev-qa-db-ja.com

スコープにカテゴリを追加するにはどうすればよいですか?

私はUbuntuSDKで遊んでいます。現時点では、Unity8スコープを作成しようとしています。現在、私は次のことに固執しています:

  • スコープにカテゴリを追加するにはどうすればよいですか(結果の上の選択リスト、Amazonスコープを参照)

残念ながら、開発者向けドキュメントには有用な情報が見つかりませんでした。

3
Michael W

結果の上のドロップダウンは部門セレクターです。カテゴリは、スコープの結果に含まれるさまざまなアイテムのグループです。そのため、正しいAPIを見つけるのに問題があった可能性があります。

スコープに部門を追加するには、クエリクラスのrunメソッドの応答オブジェクトで _register_departments_ を呼び出す必要があります。これは、この特定の結果のセットに対して表示される部門のセットを表す_unity::scopes::Department::SCPtr_オブジェクトを取ります。

  1. ユーザーが現在トップレベルの部門を閲覧している場合は、トップレベルを表すDepartmentを渡し、その直接の子を入力する必要があります。

  2. ユーザーがサブ部門を閲覧している場合は、親を表すDepartmentを渡し、その直接の子を入力する必要があります。現在の部門は子内に表示される必要があります。

アイデアは、即時ナビゲーションに必要な部門ツリーの部分のみが提供されるということです。コードは次のようになります。

_Department::SPtr parent = Department::create("parent", query(), "Parent Dept")
parent->set_subdepartments({
    Department::create("sibling", query(), "Sibling department"),
    Department::create("current", query(), "Current departmnet")});
reply->register_departments(parent);
_

これで、ユーザーが選択した部門に関連する結果をスコープに提供させるだけで済みます。これは、クエリクラスで query().department_id() として使用できるようになります。これは、以前に登録した部門の1つのID、または最上位部門として扱われる必要がある_""_と一致します。

1