我正在尝试添加一个检查器以用于调试。我正在使用超轻并尝试遵循他们的文档,但只有将检查器与我的构建捆绑在一起才成功。
我当前尝试显示检查器的代码如下所示:
explicit WebGUI(WebGUIConfig config)
{
this->functionMap = config.getFunctionMap();
app = ultralight::App::Create();
window = ultralight::Window::Create(app->main_monitor(), config.width, config.height, false,
ultralight::kWindowFlags_Titled | ultralight::kWindowFlags_Resizable *
config.isResizable);
app->set_window(*window);
window->SetTitle(config.title.c_str());
overlay = ultralight::Overlay::Create(*window, window->width(), window->height(), 0, 0);
overlay->view()->set_load_listener(this);
overlay->view()->LoadURL(config.url.c_str());
window->set_listener(this);
overlay->view()->set_view_listener(this);
ultralight::RefPtr<ultralight::View> inspectorView = overlay->view()->inspector();
inspectorView->Resize(500, 500);
auto inspectorViewView = ultralight::Overlay::Create(*window, *inspectorView, 0, 0);
inspectorViewView->view()->set_load_listener(this);
inspectorViewView->view()->set_view_listener(this);
}
我可以在调试控制台中看到许多错误(其中大多数是语法异常),但我没有看到任何检查器窗口出现。 难道我做错了什么?如何显示此视图?
免责声明,这不是完整的答案。
我使用quickstart来启动我的项目,然后:
在 MyApp.h 中:
RefPtr<Overlay> inspector_overlay_;
在 MyApp.cpp 中:
MyApp::MyApp()
{
app_ = App::Create();
window_ = Window::Create(app_->main_monitor(), WINDOW_WIDTH, WINDOW_HEIGHT,
false, kWindowFlags_Titled | kWindowFlags_Resizable);
overlay_ = Overlay::Create(window_, 1, 1, 0, 0);
OnResize(window_.get(), window_->width(), window_->height());
overlay_->view()->LoadURL("file:///index.html");
app_->set_listener(this);
window_->set_listener(this);
overlay_->view()->set_load_listener(this);
overlay_->view()->set_view_listener(this);
overlay_->view()->CreateLocalInspectorView();
}
RefPtr<View> MyApp::OnCreateInspectorView(ultralight::View* caller, bool is_local,
const String& inspected_url) {
if (inspector_overlay_)
return nullptr;
inspector_overlay_ = Overlay::Create(window_, window_->width(), 200, 0, 150);
caller->Resize(window_->width(), window_->height());
inspector_overlay_->Show();
return inspector_overlay_->view();
}
但是我无法与覆盖视图交互(我可能错过了一些事件处理?)。因此,我使用了 浏览器示例 并将其中一个选项卡的 html 文件之一替换为我的文件,我还从资源文件夹中的源添加了
/inspector
文件夹并修复了 CMakeLists.txt
文件。然后它就可以正常工作了,所以你应该能够从那里提取你需要的东西。
如果你让它在你的项目中发挥作用,我也很感兴趣:)