示例
官方在 miniapp-devkit 仓库中提供了四个完整的示例项目,覆盖从入门到进阶的典型场景,建议按顺序阅读源码。
| 示例 | 技术栈 | 重点 |
|---|---|---|
| basic-miniapp | Vanilla + TypeScript | 创建下载任务,最小入门项目 |
| image-cut-miniapp | Vue + TypeScript | 本地图片裁剪、实时预览、通过 Blob 创建下载任务 |
| task-manager-miniapp | Vue + TypeScript | 任务与任务组管理、视频预览 |
| github-release-miniapp | React + TypeScript | 解析资源、创建任务组、下载解析事件 |
每个示例的 README 都有运行与打包说明。以 basic-miniapp 为例:
bash
pnpm --filter basic-miniapp dev保持 dev server 运行,在迅雷客户端中加载示例的 dist 目录即可(见安装到迅雷)。
basic-miniapp — 基础示例
入门首选:Vanilla + TypeScript 的最小示例,演示在页面中通过 xunlei.tasks.create 创建迅雷下载任务,页面显示返回的任务 ID 或错误信息。
学习重点:
- 页面中调用
xunlei.tasks.create的最小完整流程; permissions中声明tasks.create权限。
image-cut-miniapp — 图片裁剪工具
Vue + TypeScript 示例,也是使用 AI 开发微应用的实战示例:选择或拖入本地图片、调整裁剪区域、实时预览,把裁剪结果保存为 PNG / JPEG。图片全部在本地处理,无需上传。
学习重点:
runtime.blob.createObjectURL把 Canvas 导出的图片 Blob 转为可下载的临时 URL(blob权限);- 用临时 URL 调用
tasks.create创建下载任务,失败时revokeObjectURL释放; - 创建成功后不立即撤销 URL,等下载器读取完成,与 Blob 使用注意一致。
task-manager-miniapp — 任务管理器
Vue + TypeScript 示例:创建和删除下载任务、查看任务与任务组、预览已完成的视频。任务组会汇总子任务的视频文件,按各子任务的完成状态开放播放;删除时可选是否同时删除本地文件。
学习重点:
tasks.list+tasks.detail读取状态、进度与文件列表,任务组通过children遍历子任务;tasks.delete的deleteFiles选项控制是否删除本地文件;tasks.file.access获取临时只读 URL,在页面中播放已完成的视频。
github-release-miniapp — GitHub Release 下载
React + TypeScript 示例:解析 GitHub 公开仓库最新 Release 的附件和源码压缩包,勾选后一键创建迅雷下载任务组;同时通过 onResolve 钩子,在迅雷新建下载面板中直接解析用户输入的仓库链接(支持 user/repo 短写)。
学习重点:
network权限与network.urls白名单的声明与使用;tasks.createGroup把多个资源创建为同一个下载目录的任务组;onResolve钩子介入链接解析、通过ctx.res.files返回可下载文件。


