[software development] 海思麒麟990 在GTK窗口上加载webview,显示白屏 Resolved
Tofloor
poster avatar
momo
deepin
2024-03-22 14:01
Author

起因:我用GTK语法创建窗口,在窗口上加载webview,显示一个网页地址,但是显示白屏;

1、这个是我的代码:

1.png

2、运行结果,在GTK窗口上加载webview,来显示百度的链接,白屏,如下图:

3.png

请教下大佬们帮忙分析下原因,有什么需要提供的,请提出来,谢谢各位了!!!!!

Reply Favorite View the author
All Replies
Ziggy
deepin
2024-03-22 14:08
#1

可以用新版本的环境看看,这个应该是历史版本gtk的bug

Reply View the author
👀偷偷观察
deepin
2024-03-22 14:27
#2

可以给一份文本,而不是照片吗?我可以在deepin23 帮你尝试。看是否是环境问题导致的。

你最好给出你的gtk版本,方便大家排查问题。

Reply View the author
deepin-superuser
deepin
2024-03-22 14:39
#3

export WEBKIT_DISABLE_COMPOSITING_MODE=1 试试

我虚拟机里搞的时候硬件加速是有问题了,加了这个就好了 代码里应该有类似的设置

Reply View the author
早起的虫儿有鸟吃
deepin
2024-03-22 15:34
#4

麒麟990,Mate30系列用的SOC,不知道这系列手机能否刷这个系统😂

Reply View the author
momo
deepin
2024-03-22 15:35
#5
Ziggy

可以用新版本的环境看看,这个应该是历史版本gtk的bug

我在这个芯片上,安装了UOS,麒麟系统,运行也是白屏现象,但高版本的UOS系统就正常,,目前还不清楚是不是gtk的bug。。。。

Reply View the author
momo
deepin
2024-03-22 15:41
#6
👀偷偷观察

可以给一份文本,而不是照片吗?我可以在deepin23 帮你尝试。看是否是环境问题导致的。

你最好给出你的gtk版本,方便大家排查问题。

GTK版本:gtk+-3.0 3.24.23
抱歉,下面是我的代码:
#include
#include

static gboolean webview_button_press_event(GtkWidget *widget, GdkEventButton *event, WebKitWebView *webview) {
    gtk_widget_grab_focus(GTK_WIDGET(webview));
    return FALSE;
}

int main(int argc, char *argv[]) {
    gtk_init(&argc, &argv);

    // 创建一个窗口
    GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);

    // 创建一个webview
    WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new());

    // 加载一个网页
    webkit_web_view_load_uri(webView, "http://www.baidu.com");

    // 设置webview*
    WebKitSettings *settings = webkit_settings_new_with_settings("enabl*", TRUE, NULL);
    webkit_web_view_set_settings(webView, settings);

    // 将webview添加到窗口中
    gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(webView));

    // 显示窗口和其中的webview
    gtk_widget_show_all(window);

    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(window, "button-press-event", G_CALLBACK(webview_button_press_event), webView);

    gtk_main();

    return 0;
}
Reply View the author
momo
deepin
2024-03-22 15:44
#7
deepin-superuser

export WEBKIT_DISABLE_COMPOSITING_MODE=1 试试

我虚拟机里搞的时候硬件加速是有问题了,加了这个就好了 代码里应该有类似的设置

感谢。我试下
Reply View the author
momo
deepin
2024-03-22 16:02
#8
deepin-superuser

export WEBKIT_DISABLE_COMPOSITING_MODE=1 试试

我虚拟机里搞的时候硬件加速是有问题了,加了这个就好了 代码里应该有类似的设置

非常感谢,你提供的方法是可行的。请问这个环境变量具体作用是什么?

Reply View the author
deepin-superuser
deepin
2024-03-22 16:04
#9
momo

非常感谢,你提供的方法是可行的。请问这个环境变量具体作用是什么?

关闭 webkit 硬件加速

Reply View the author
momo
deepin
2024-03-22 17:07
#10
deepin-superuser

关闭 webkit 硬件加速

好的,学习了解下!再次感谢

Reply View the author