创建浏览器后,CefResourceManager AddArchiveProvider失败

时间:2019-10-09 06:30:16

标签: c++ chromium-embedded

在处理程序类构造函数中初始化CefResourceManager指针,并立即调用SetupResourceManager函数。

Application.Quit();

效果很好。

但是在当前的业务需求中,初始化处理程序时,资源(zip文件)尚未准备好,因此我尝试先调用CreateBrowser,然后在下载资源文件时在处理程序类中调用AddArchiveProvider,例如这个。

cefclient_handler::cefclient_handler(CefRefPtr<QCefPage> listner, CefRefPtr<CefRenderHandler> osrenderHandler)
    : is_closing_(false), clientListner_(listner), osrenderHandler_(osrenderHandler){
    resource_manager_ = new CefResourceManager();
        SetupResourceManager(resource_manager_ ,"file:///D:/test/test.zip")
}

void SetupResourceManager(CefRefPtr<CefResourceManager> resource_manager,std::string resource_dir) {
    if (!CefCurrentlyOn(TID_IO)) {
        // Execute on the browser IO thread.
        CefPostTask(TID_IO, base::Bind(SetupResourceManager, resource_manager, resource_dir));
        return;
    }
    resource_manager->AddArchiveProvider("https://***.net", resource_dir,"", 0,
        std::string());
}

它不再起作用了。 bad result

0 个答案:

没有答案