最近用CEF下载文件发现了一个问题,CefBeforeDownloadCallback都还没有决定文件路径和是否continue,DownloadUpdated却一直有下载回调过来。
updated过程是没有文件名的,但是有数据大小。CefBeforeDownloadCallback我是放在其它线程进行异步处理的。
这样对于我来说不好控制下载过程的UI显示,因为文件列表是根据文件名来显示下载进度的。
可以参考一下浏览器的处理,决定下载后自己定义一个系统的文件名,记录系统文件名和用户保存文件名的映射关系,这样你DownloadUpdated的回调就可以在UI里根据文件名来显示了,当文件下载完成后,根据映射记录,再修改文件名到用户的文件名即可,重复的自行加1就完事了。