在线咨询
Skip to content

示例 ​

官方在 miniapp-devkit 仓库中提供了四个完整的示例项目,覆盖从入门到进阶的典型场景,建议按顺序阅读源码。

示例技术栈重点
basic-miniappVanilla + TypeScript创建下载任务,最小入门项目
image-cut-miniappVue + TypeScript本地图片裁剪、实时预览、通过 Blob 创建下载任务
task-manager-miniappVue + TypeScript任务与任务组管理、视频预览
github-release-miniappReact + 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 返回可下载文件。

下一步 ​