downloadInBrowser
浏览器环境下载:按 URL 类型选择新窗口打开或 a[download] 锚点触发。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.createAnchorElement | () => HTMLAnchorElement | 创建 a 元素 |
deps.appendChild | (el) => void | 挂载到 body |
deps.removeChild | (el) => void | 从 body 移除 |
deps.openUrl | (url) => void | 新窗口打开 URL |
deps.randomUUID | 可选 | 生成 downloadId |
函数签名
typescript
function downloadInBrowser(
options: DownloadOptions,
deps: DownloadInBrowserDeps,
): DownloadResult参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.url | string | 是 | 下载地址 |
options.filename | string | 否 | 缺省从 URL 推断 |
options.browserMode | 'window' | 'anchor' | 否 | 缺省:http(s) 用 window,否则 anchor |
options.downloadId | string | 否 | 进度回调 ID |
options.onProgress | function | 否 | 完成时回调 |
deps | DownloadInBrowserDeps | 是 | DOM 依赖 |
返回值
| 类型 | 说明 |
|---|---|
DownloadResult | { ok, downloadId, error? } |
工作原理
- 解析
browserMode与文件名。 window模式调用deps.openUrl;anchor模式走triggerAnchorDownload。- 触发
onProgress并返回结果。