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