我已经阅读了当 web_view 中的加载操作发生变化时可以发出的加载变化信号。(https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#WebKitWebView-load-changed) 我需要使用它,但我不明白如何让 WebKitLoadEvent load_event 正确使用此功能。我没有看到任何其他返回 WebKitLoadEvent 的函数。我该如何使用这个功能?
static void web_view_load_changed (WebKitWebView *web_view,WebKitLoadEvent load_event, gpointer data)
{
struct widget *w = (struct widget *)data;
const gchar *redirected_uri;
const gchar *uri;
GTimer *timer = g_timer_new ();
switch (load_event) {
case WEBKIT_LOAD_STARTED:
break;
case WEBKIT_LOAD_REDIRECTED:
break;
case WEBKIT_LOAD_COMMITTED:
break;
case WEBKIT_LOAD_FINISHED:
break;
}
}
正如你所说,这个信号是从 web_view 发出的。因此,为了使用它,您只需要在创建 web_view 的地方将此功能与 web_view 连接。
这应该是这样的:
web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
g_signal_connect(web_view, "load-change", G_CALLBAK(web_view_load_changed), (gpointer) data);