Download 在SwiftUI中下载视频真的很麻烦

Download 在SwiftUI中下载视频真的很麻烦,download,background,swiftui,nsurlsessiondownloadtask,Download,Background,Swiftui,Nsurlsessiondownloadtask,我在后台下载SwiftUI时遇到了很大的困难。我不是真的白痴就是很难 我可能有一个错误的想法,那就是如何通过配置为后台工作的会话下载任务。我试过很多方法;以下是我目前正在做的事情: 导入基础 进口联合收割机 类背景下载任务:ObservieObject{ ///从Listings SwiftUI视图中列表行中的每个下载按钮调用此方法 ///此呼叫通过承载令牌进行身份验证 ///带下载模型的参数下载视频 func下载视频背景(下载视频:下载){ 设vimeoHeaders=mmHeaders(

我在后台下载SwiftUI时遇到了很大的困难。我不是真的白痴就是很难

我可能有一个错误的想法,那就是如何通过配置为后台工作的会话下载任务。我试过很多方法;以下是我目前正在做的事情:

<代码>导入基础 进口联合收割机 类背景下载任务:ObservieObject{ ///从Listings SwiftUI视图中列表行中的每个下载按钮调用此方法 ///此呼叫通过承载令牌进行身份验证 ///带下载模型的参数下载视频 func下载视频背景(下载视频:下载){ 设vimeoHeaders=mmHeaders( ContentType:“应用程序/json”, HttpMethod:“获取”, 授权:“持票人” ) 让ST=SessionTasks(url:downloadVideo.url) 让vimeoDownloadLinksRequest=ST.getRequest(mmHeaders:vimeoHeaders) 让screenWidth=UIScreen.main.bounds.width 让screenHeight=UIScreen.main.bounds.height 打印(屏幕宽度、屏幕高度) //此获取成功检索具有有限时间下载链接的Vimeo对象 ST.fetch(from:VimeDownloadLinksRequest){结果为 切换结果{ 案例.成功(让数据): DispatchQueue.main.async{ 做{ 让response=try JSONDecoder().decode(vimeodload.self,from:data) //sessiontask使用nil重新实例化,因为url是通过setter注入设置的 var SDV=sessiontask(url:nil) var BkgD=BkgDownloader() var downloadLinkForIPAD:URL? var downloadLinkForIPHONE:URL? //获取并设置iphone和ipad视频大小,并设置下载链接 用于响应的视频字段。下载{ 切换videoFields.public\u名称{ 案例“SD 540p”: downloadLinkForIPAD=URL(字符串:字符串(videoFields.link)) 案例“SD 360p”: downloadLinkForIPHONE=URL(字符串:字符串(videoFields.link)) 违约: 打破 } } if(nil!=ipad下载链接| | nil!=iphone下载链接){ 如果UIDevice.current.model.hasPrefix(“iPad”){ 打印(“iPad”) //下载540p视频 setUrl(url:downloadLinkForIPAD) //未经验证的url,因此我们不传递请求,只传递url 下载文件(url:downloadLinkForIPAD!) }否则{ 打印(“iPhone或iPod Touch”) //下载360p视频 setUrl(url:downloadLinkForIPHONE) //未经验证的url,因此我们不传递请求,只传递url 下载文件(url:downloadLinkForIPHONE!) } } } 捕捉(让错误){ 打印(错误。本地化描述) } } 案例。失败(let错误): DispatchQueue.main.async{ 打印(错误。本地化描述) } } } } }