0
我想在Safari中打开一些视频URL,如https://...../video.mp4
,可以通过NSWorkspace.openURL
完成。Cocoa:在Safari中打开URL并强制从URL中开始下载内容
但我也想在URL完成加载后开始下载视频(类似于在网络搜索字段中自动执行快捷键Option + Enter
),而不是在线观看视频。
谢谢。
我想在Safari中打开一些视频URL,如https://...../video.mp4
,可以通过NSWorkspace.openURL
完成。Cocoa:在Safari中打开URL并强制从URL中开始下载内容
但我也想在URL完成加载后开始下载视频(类似于在网络搜索字段中自动执行快捷键Option + Enter
),而不是在线观看视频。
谢谢。
使用NSURLSession直接下载文件。这正是Safari在引擎盖下所使用的。
NSURL *url = [NSURL URLWithString:@"https://...../video.mp4"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *urlSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
self.downloadTask = [self.urlSession downloadTaskWithRequest:downloadRequest];
[self.downloadTask resume];
感谢您的回答。但我想让Safari管理整个下载过程(默认存储路径,暂停和恢复等)。 – Jonny
这没有API。另外,在应用程序之间跳跃用户太多是不好的用户体验。 -openURL:用于完全将控制交给另一个应用程序。它并不打算成为编写正确下载代码的捷径,因此没有“下载完成”回调。您可以使用NSSearchPathForDirectoriesInDomains()获取当前下载文件夹,并使用NSURLSession下载并恢复。 – uliwitness