Appearance
search
为搜索栏提供结果。search 与 widget 均属于展示型扩展,仅生成 ListItem,点击结果时使用相同的 Open 解析流程。
字段
| 字段 | 必填 | 含义 |
|---|---|---|
type | 是 | "search" |
id / title | 是 | 搜索来源名称 |
params | 否 | 除关键词外的用户字段(排序、范围等) |
cache | 否 | 默认 ttlSeconds: 3600 |
search | 是 | protocol 方法 |
一个包可以导出多个 search 扩展,例如将“作品”和“人物”分别作为独立来源。App 会在搜索栏中列出已安装的 search 扩展。
Protocol
ts
search(ctx, input) => Promise<Page<ListItem>>
input: {
query: string;
params: Record<string, unknown>;
page?: PageToken;
}query 由 App 注入,不属于 params。当 query 为空时,可以返回空页面,也可以抛出 ExtensionError({ code: "invalid_params" })。同一扩展应始终采用一致的处理方式。
search 返回的 ListItem 及其点击解析规则与 widget 相同。search 不提供 loadDetail 或 sources。