我已成功将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");
输出应用程序截图:
答案 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
工作正常。