在应用市场里找应用
本文是 1.x 的归档文档(冻结于 1.x)。该分支只接收勘误修正, 内容基本不再变动;文中的源码路径、配置项与版本号均以 1.x 为准,不建议用于新项目。
新项目请查看 5.x 最新文档。已在 1.x 上运行的项目,本文仍是可靠依据。
应用市场是宿主前端里的一个页面:路由 /appmarket/market,源码
plus-ui/src/views/appstore/market/index.vue。它只负责浏览与安装;
装完之后的版本、启停、卸载在 安装、升级、卸载与启停。
浏览市场需要权限 app:market:list;卡片上的「安装」按钮需要 app:install:add。
没有权限时页面照常打开,只是按钮不出现。接口清单见 HTTP 接口索引。
从哪进
| 入口 | 位置 |
|---|---|
| 侧边栏 | 应用市场(菜单 appmarket) |
| 工作台 | 「我的应用」卡片右上角的「前往应用市场」;本租户一个应用都没有时,空态里还有一个「去应用市场看看」 |
页面上有什么
工具栏从左到右:
| 控件 | 行为 |
|---|---|
| 关键词搜索框 | 回车触发。走后端,搜索在目录里做,中文正常 |
| 「已安装」复选框 | 前端过滤,只留本租户装过的 |
| 排序 | 「最近更新」(默认)与「最新创建」,前端排序 |
| 网格 / 列表切换 | 本地记住(localStorage 的 app-store-list-view) |
| 刷新 | 重新拉一次市场列表与本租户的安装列表 |
左侧筛选:
- 类型:全部 / 内置模块(
module)/ 插件(plugin)/ 部署型(deploy)—— 前端过滤; - 分类:选项来自
GET /app/category/list(权限app:category:list),走后端过滤。
卡片上能看到:封面(没有封面时用图标 + 渐变兜底)、「官方」角标(清单里 officialFlag 为 1 时)、
类型角标、应用名、最新版本号、相对时间(「x 天前更新」)、一行简介、
作者(没填时显示「未知作者」),以及右下角那个按钮 —— 已安装时只显示状态且不可点,未安装时是「安装」。
卡片中间还会多出一行:本租户装过、且装着的版本低于市场最新版时,出现 「有新版本(x.y.z),查看详情 或 立即更新」。升级不必先去「我的应用」,在市场卡片上就能做。
详情与版本
点封面或应用名打开详情抽屉(市场页与已安装页共用同一个组件),分三块:
- 头部:图标、名称、「官方」标签、安装状态标签(只有已安装页会传这个)、「N 次安装」、 应用编码、「最新 vX」、简介;
- 左侧元信息:作者(填了主页时是可点链接)、版本、平台版本(
engineRange,「需要平台 …」)、 协议(license)、类型、标签,以及「更多」里的收录时间 / 最后发布 / 当前已装; - 右侧两个标签页:
- 「简介」:应用自己的说明;
- 「版本 N」:左边是版本列表(新版本在前,标出「最新」与「已装」,带发布时间), 右边是选中版本的平台版本约束、制品大小、发布日期与更新日志。
它是上架端填的多行文本、没有经过 HTML 消毒,所以只做文本插值。
写 <b> 这样的标签只会看到标签本身,不会被当富文本执行。
详情接口或版本列表接口失败(权限不足、应用已下架)时,抽屉仍会用列表页已经拿到的字段展示 (名称、图标、编码、类型、当前已装版本),不会开出一片空白。
官方版与用户版,对你意味着什么
同一套代码有两种形态,由部署侧的 app-market.edition 决定 —— 不是按用户、也不是按角色:
官方版(official,默认) | 用户版(client) | |
|---|---|---|
| 目录数据在哪 | 就在本机库里(catalog.mode=local) | 读官方远端目录(必须 catalog.mode=remote) |
上架端(/appconsole) | 有:应用、版本、分类、安装包上传 | 没有 |
| 逛市场 / 安装 / 升级 / 启停 / 卸载 / 任务中心 / 菜单保护 | 都有 | 都有 |
对普通用户,两种形态只差一件事:用户版里没有「上架」这回事。
- 上架端相关的接口(
/app/console、/app/version、/app/package,以及/app/category的写操作) 在用户版一律返回 403 + 明确文案,不是 404,更不是静默失效。静默失效是最坏的一种: 用户版的"上架"写的是本地库,而安装读的是远端目录 —— 放开的话「上架成功」对安装毫无影响; - 侧边栏里那棵上架端菜单会被整棵隐藏(连后代),手打
/appconsole会被前端路由守卫送回首页; - 分类的读接口在用户版是放行的 —— 市场页要用它做筛选。
用户版的 sys_menu 里仍然有那几行上架菜单(平台初始化 SQL 建的,存量部署改不动)。
所以隐藏是「服务端过滤 + 前端兜住」两边一起做的,别拿菜单表判断这套部署是什么形态。
所以「我能不能上架一个应用」的答案是:看这套部署是什么形态,不看你的角色。要上架得在官方版里做。
相关阅读
- 安装、升级、卸载与启停 —— 装完之后在哪儿操作
- 目录中心化与版本形态 —— 两种形态的机制与启动期校验
- 应用生态 —— 官方目录里现有哪些应用