CEF不从URL加载页面

时间:2014-07-11 20:58:07

标签: url chromium-embedded

我已成功将CEF与我的wxWidgets应用程序集成,但在使用CefFrame::LoadURL时它不会呈现页面,只有在调用CefFrame::LoadString函数时才会成功加载和呈现内容。

如果请求的网址无效或未找到,则会在code=-106

中输出浏览器内错误

调用CEF的代码:

    CefMainArgs main_args(wxGetApp().argc, wxGetApp().argv);        
    SampleCefApp *sampleAppObj = new SampleCefApp(frame);
    CefRefPtr<SampleCefApp> app(sampleAppObj);

    int exit_code = CefExecuteProcess(main_args, app.get(), NULL);
    if (exit_code >= 0)
    {
        return exit_code;
    }

    CefSettings settings;

    CefString(&settings.javascript_flags).FromASCII("--harmony");

    // Initialize CEF for the browser process.
    CefInitialize(main_args, settings, app.get(), NULL);

    CefRefPtr<CefBrowser> cefBrowserObj = sampleAppObj->theBrowser;
    CefRefPtr<CefFrame>   cefMainFrame  = cefBrowserObj->GetMainFrame();
    cefMainFrame->LoadURL("file://home/sameh/Code/wxCEF/resources/app.html");

输出应用程序截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

来自net_error_list.h(http://src.chromium.org/svn/trunk/src/net/base/net_error_list.h)的代码-106:

// The Internet connection has been lost.
NET_ERROR(INTERNET_DISCONNECTED, -106)

尝试通过将其设置为CreateBrowser()函数来加载URL,看看是否有帮助。这可能是一个计时问题,CreateBrowser()异步工作,在调用LoadURL()时,浏览器/框架可能尚未准备好使用。请尝试使用CreateBrowserSync()。

EDIT。 文件协议后应该有三个斜杠,file://home/czarek/asd.txt在Google Chrome中生成错误,而file:///home/czarek/asd.txt工作正常。