downloadInBrowserResolved
Web 下载增强:有文件名且为 http(s) 时先 fetch 为 blob 再 a[download],避免 window.open 被拦截。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.fetch | FetchFunction | 拉取远程文件 |
deps.createObjectURL | (blob) => string | 创建 blob URL |
deps.revokeObjectURL | (url) => void | 释放 blob URL |
deps.setTimeout | typeof setTimeout | 延迟 revoke |
以及 downloadInBrowser 的 DOM 依赖 |
函数签名
typescript
function downloadInBrowserResolved(
options: DownloadOptions,
deps: DownloadInBrowserResolvedDeps,
): Promise<DownloadResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options | DownloadOptions | 是 | 同 downloadInBrowser |
deps | DownloadInBrowserResolvedDeps | 是 | fetch + DOM 依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<DownloadResult> | 下载结果 |
工作原理
- 有文件名且 URL 为 http(s) 且非
window模式时,先fetch→blob→triggerAnchorDownload。 - fetch 失败(如 CORS)时回退
downloadInBrowser。 - 成功后延迟 60s
revokeObjectURL。