BackgroundURLSession 提供在 Scripting app 中发起、恢复与查询「后台可持续」的下载与上传任务的能力。
可用性: 仅当脚本运行在主应用 (
Script.env === "index") 时可用。
BackgroundURLSessionstartDownload(options): URLSessionDownloadTask作用:启动一个新的后台下载任务。
签名
参数说明
url (string):要下载的文件 URL。destination (string):下载完成后保存的目标文件路径。headers (Record<string, string>, 可选):HTTP 请求头。notifyOnFinished ({ success: string, failure: string }, 可选):下载完成后是否发送本地通知, success 为成功通知标题,failure 为失败通知标题。返回值
URLSessionDownloadTask:下载任务对象(任务会自动启动)。示例
resumeDownload(options): URLSessionDownloadTask作用:从断点续传数据恢复一个下载任务。
签名
参数说明
resumeData (Data):通过 cancelByProducingResumeData() 获取的断点数据。destination (string):下载完成后的目标保存路径。notifyOnFinished ({ success: string, failure: string }, 可选):下载完成后是否发送本地通知, success 为成功通知标题,failure 为失败通知标题。返回值
URLSessionDownloadTask:下载任务对象(任务会自动启动)。示例
getDownloadTasks(): Promise<URLSessionDownloadTask[]>作用:获取当前系统中仍存在的后台下载任务。 脚本被终止或重启后,可通过该方法重新获取任务实例并重新设置回调。
签名
返回值
Promise<URLSessionDownloadTask[]>:下载任务对象数组。示例
startUpload(options): URLSessionUploadTask作用:启动一个新的后台上传任务。
签名
参数说明
filePath (string):要上传的本地文件路径。toURL (string):服务器目标 URL。method (string, 可选,默认 "POST"):HTTP 请求方法。headers (Record<string, string>, 可选):HTTP 请求头。notifyOnFinished ({ success: string, failure: string }, 可选):上传完成后是否发送本地通知, success 为成功通知标题,failure 为失败通知标题。返回值
URLSessionUploadTask:上传任务对象(任务会自动启动)。示例
resumeUpload(options): URLSessionUploadTask作用:恢复一个可续传的上传任务。
签名
参数说明
resumeData (Data):先前上传任务失败时生成的续传数据。notifyOnFinished ({ success: string, failure: string }, 可选):上传完成后是否发送本地通知, success 为成功通知标题,failure 为失败通知标题。返回值
URLSessionUploadTask:新的上传任务对象(任务会自动启动)。示例
getUploadTasks(): Promise<URLSessionUploadTask[]>作用:获取系统中仍存在的后台上传任务,用于脚本重启后恢复任务状态与回调。
签名
返回值
Promise<URLSessionUploadTask[]>:上传任务数组。示例
task.suspend() 暂停任务,则可通过 task.resume() 恢复。cancelByProducingResumeData() 生成续传数据;上传任务是否支持续传取决于服务器。getDownloadTasks() 或 getUploadTasks() 取回并重新绑定事件回调。notifyOnFinished 仅影响任务完成时的本地通知显示,不影响任务执行流程。