如何向范围添加类别?

如何向范围添加类别?

我正在使用 Ubuntu SDK。目前,我正在尝试创建 Unity 8 Scope。目前,我遇到以下问题:

  • 如何将类别添加到范围(结果上方的选择列表,请参阅亚马逊范围)

不幸的是我没有在开发者文档中找到任何有用的信息。

答案1

结果上方的下拉菜单是部门选择器。类别是范围结果中的不同项目组,这就是为什么您可能无法找到正确的 API。

要将部门添加到您的范围,您应该调用register_departments在查询类run方法中的回复对象上。这将采用一个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()。这将与您之前注册的某个部门的 ID 相匹配,或者""应将其视为顶级部门。

相关内容