小程序开发文档 参考 · 分发

商店与上架

小程序不走微信后台,而是由 NXMiniApp 服务端(Go + MySQL)下发:启动器拉列表,点击时下载 .nxpkg、校验后安装到本地。

链路

启动器 ── GET /api/v1/miniapps ──▶ 列表(只含 published = true)
   │
   └─ 点击卡片 ─ 未安装或版本不同 ─▶ GET /api/v1/miniapps/{id}/download
                                   └─ 解包 → miniapps/{id}/ → 进入页面

上架字段(meta.json / 管理后台)

字段默认值说明
id目录名必须匹配 ^[a-z0-9][a-z0-9_-]{1,63}$(2–64 字符),安装目录按 ID 存放。
title目录名卡片标题。
summary空一句话简介,参与搜索。
description空详情描述。
category示例分类;启动器副标题显示「分类 · v版本 · 大小」。
developer空开发者。
version1.0.0与本地 .version 比较,决定是否重新下载。
icon空包目录有 icon.png 时自动登记。
publishedtrue为 false 时不会出现在列表里。

包格式要求

必须使用 ZIP_STORED(不压缩)且无数据描述符。 容器通过 zip.Store + 预填 CRC 的方式写包;普通 zip -r 产物可能因 DEFLATE 或数据描述符被拒绝,提示「安装包必须使用 ZIP_STORED」。

发布方式

管理后台(推荐)

浏览器打开 http://<host>:8080/admin,默认令牌 nxkit-store-admin (可用环境变量 NXKIT_ADMIN_TOKEN 覆盖)。「小程序」页支持:新建、编辑字段、上传图标、 上传包并递增版本、上下架切换。

「文档」页维护本站(/docs)内容:页面标题、顶栏描述与主内容 HTML 均可在线编辑, 保存即时生效;「恢复默认」可将单页还原为镜像内置版本。新增/变更 API 或组件实现后,直接在后台更新对应页面即可。

HTTP 接口

curl -X POST -H "Authorization: Bearer nxkit-store-admin" \
  -F "file=@hello.zip" -F "version=0.2.0" \
  http://127.0.0.1:8080/api/v1/admin/miniapps/hello/package

公共接口

方法路径说明
GET/api/v1/health健康检查。
GET/api/v1/miniapps列表;支持 q(标题/简介/ID 模糊匹配)与 category 精确过滤。
GET/api/v1/miniapps/{id}详情。
GET/api/v1/miniapps/{id}/download下载 .nxpkg,始终 ZIP_STORED。
GET/api/v1/miniapps/{id}/icon封面图片,可能 404。
GET/api/v1/check-updates批量版本检查。

icon_url 与 download_url 可能是相对路径,客户端会拼成绝对地址。

安装与更新

对应源码:client/apps/miniapp/source/api/miniapp_api.cpp、source/install/package_manager.cpp;服务端见仓库 server/