c# - Get finished download in CefSharp -
i try make small downloader-tool website cefsharp. downloading files, use pretty example downloadhandler cefsharp. now, want things after download finished. know "downloaditem" has "iscomplete" value. if put in "ondownloadupdated" method, stuff never executed
if (downloaditem.iscomplete) { //do stuff }
so, question is, have check if downloaded item completed?
edit: complete downloadhandler:
public class downloadhandler : idownloadhandler { public event eventhandler<downloaditem> onbeforedownloadfired; public event eventhandler<downloaditem> ondownloadupdatedfired; private bool stop; private downloadwindow window; public void onbeforedownload(ibrowser browser, downloaditem downloaditem, ibeforedownloadcallback callback) { var handler = onbeforedownloadfired; if (handler != null) { handler(this, downloaditem); } if (!callback.isdisposed) { using (callback) { callback.continue(downloaditem.suggestedfilename, showdialog: true); } } window = new downloadwindow(downloaditem.totalbytes, downloaditem.suggestedfilename, this); window.show(); } public void ondownloadupdated(ibrowser browser, downloaditem downloaditem, idownloaditemcallback callback) { var handler = ondownloadupdatedfired; if (handler != null) { handler(this, downloaditem); } if (window != null) { window.updateprogress(downloaditem.receivedbytes); } if (stop) { callback.cancel(); } } public void stopdownload() { stop = true; } }
you need check inside ondownloadupdated
method.
public void ondownloadupdated(ibrowser browser, downloaditem downloaditem, idownloaditemcallback callback) { if (downloaditem.iscomplete || downloaditem.iscancelled) { //do stuff } }
don't forget, class must implement idownloadhandler
interface. debugging strategy placing breakpoints inside method, see/understand when gets fired.
Comments
Post a Comment