无法在超轻c++中显示webkit Inspector

问题描述 投票:0回答:1

我正在尝试添加一个检查器以用于调试。我正在使用超轻并尝试遵循他们的文档,但只有将检查器与我的构建捆绑在一起才成功。

我当前尝试显示检查器的代码如下所示:

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);
    }

我可以在调试控制台中看到许多错误(其中大多数是语法异常),但我没有看到任何检查器窗口出现。 难道我做错了什么?如何显示此视图?

c++ webkit
1个回答
0
投票

免责声明,这不是完整的答案。

我使用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
文件。然后它就可以正常工作了,所以你应该能够从那里提取你需要的东西。

如果你让它在你的项目中发挥作用,我也很感兴趣:)

© www.soinside.com 2019 - 2024. All rights reserved.