Как аннулировать задачу загрузки Dropbox - PullRequest
0 голосов
/ 20 ноября 2018

Я интегрировал Dropbox, используя Pods "pod 'ObjectiveDropboxOfficial'" Я запросил конкретный файл для загрузки, например, следующий код

DBUserClient *client = [DBClientsManager authorizedClient];
[[[client.filesRoutes downloadData:imagePath]
 setResponseBlock:^(DBFILESFileMetadata *result, DBFILESDownloadError *routeError, DBRequestError *error, NSData *fileData) {

     if (result) {
         NSLog(@"File Downloaded")
         [[SingletonSDK sharedInstance] hideProgessHud];
     }

}] setProgressBlock:^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
     if (!isCancelButtonAlreadyAppear) {
         [[SingletonSDK sharedInstance] showCancelButton:self];
         isCancelButtonAlreadyAppear = true;
     } }];

На странице загрузки есть кнопка отмены, поэтому, когда пользователь нажимаетотменить это следует отменить.Мне понравилось следующее, чтобы получить общий URL-адрес, а затем сделать его недействительным, потому что я не нашел отмены загрузки или недействительного метода загрузки в Документация Dropbox

- (void)cancelButtonPressedProgressHud {
[[SingletonSDK sharedInstance] hideProgessHud];
NSURLSession * sharedURLSession = NSURLSession.sharedSession;
[sharedURLSession invalidateAndCancel];
}

Я также попробовал этот гисткласс категории , чтобы сделать недействительным весь сеанс загрузки URL, но он не работал.

Пожалуйста, если кто-то сталкивался или имеет какие-либо идеи, как остановить файл, который загружается из Dropbox.Заранее спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете отменить отдельные задачи загрузки в Dropbox API v2 Objective-C SDK, используя DBTask -cancel.Например, это будет выглядеть так:

DBDownloadDataTask *req = [client.filesRoutes download...
[req cancel];
...