作为我的C ++应用程序的一部分,我需要登录具有oauth2登录流程的Web服务。我想使用webkitgtk-3.0来实现这一点,但是我在检测登录完成时遇到了问题。
我需要做的是检测浏览器何时想要在实际尝试之前重定向到“http://localhost:12345”。
我尝试过这里的答案:Webkit GTK :: How to detect when a download has finished?
但它们都不起作用。不幸的是,加载的最终页面是可以加载的,而不是http://localhost:12345。由于http localhost端口12345没有任何监听,即来自我的load_finished_cb:
static void load_finished_cb(WebKitWebView *web_view, WebKitWebFrame *web_frame, gpointer data)
{
printf("Finished downloading %s\n", webkit_web_view_get_uri(web_view));
}
上面打印的值实际上是我的登录服务的URL,而不是我希望的localhost:12345。
我真正追求的是预先浏览的回调。我怎么检测到? 它甚至可能吗?我知道它与webkit2有关,但我不想使用webkit2。我不想使用webkit,这是一个很好的理由,我不会进入这里。
仅供参考:在webkit2下,我要做的是:
g_signal_connect(web_view, "load-changed", ... );
在负载更改的回调中检测WEBKIT_LOAD_STARTED并检查URI的值。