private IEnumerator DownloadFile(string url, DownloadFinishHandler callback) { WWW www = new WWW(url); yield return(www); if (callback != null) { callback(www); } www.Dispose(); }
public virtual void Download(string fromUrl, string downloadPath, DownloadFinishHandler finishHandler) { try { var uri = new Uri(fromUrl); _downloadPath = downloadPath; _finishHandler = finishHandler; _waitModal.Reset(); if (string.IsNullOrEmpty(_downloadPath)) { _tempFile = Path.GetTempFileName(); } else { _tempFile = Path.Combine(_downloadPath, $"{Guid.NewGuid().ToString()}.tmp"); Directory.CreateDirectory(_downloadPath); } var webClient = SetupWebClient(); webClient.DownloadFileAsync(uri, _tempFile); try { _presenter?.ShowModal(); } catch { /*ignored*/ } if (webClient.IsBusy) // presenter wasn't a good Modal :/ { ModallyWaitForDownloadCompleted(); } } catch (Exception e) { finishHandler(string.Empty, e); } }