1

Webkit GTK APIを使用して C++ プログラムを作成しようとしています。プログラムは単にページをロードし、それを処理してから、別のページをロードするというように続きます。

ページの読み込みに時間がかかりすぎる場合があるため、一定時間後に呼び出されるタイムアウト コールバックがあります。コールバックは単にwebkit_web_view_stop_loading()を呼び出し、次のページをロードします。

問題は、ページの読み込みがキャンセルされた後にWebkitWebViewオブジェクトの状態をリセットする方法が見つからないことです。そこで、ページ A をロードするためにwebkit_web_view_load_uri()呼び出すことがあります。次に、ページ B の読み込みを開始しますが、ページ A のすべての読み込みを完全に停止することを意図しているにもかかわらず、ページ A から残ったさまざまなリソース (CSS ファイル、JPEG、Iframe など) によってコールバックが呼び出されます。

私が探しているのは、WebkitWebViewオブジェクトの状態をリセットする webkit_web_view_reset() 関数 (存在しない) のようなもので、新しいページを最初からロードし始めることができます。

とにかくこれを行うことはありますか?

4

2 に答える 2

0

あなたがしたいことは、そのセッションに関連付けられているすべての既存のセッション (別名接続) を終了することです。これを行う方法は、WebKit グローバル関数 ( http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-Global-functions.html )を使用することwebkit_get_default_session()です。これにより、 ( https://developer.gnome.org/libsoup/stable/SoupSession.html#soup-session-abort ) または( https://developer.gnome.org/libsoup/stableSoupSession )を呼び出すことができるインスタンスが返されます/SoupSession.html#soup-session-cancel-message ) 関数は、保留中およびアイドル状態のすべてのリクエストを強制終了/キャンセルします。soup_session_abort()soup_session_cancel_message()

于 2013-04-01T15:44:55.863 に答える
0

検討できるいくつかのオプションを次に示します。

  • 新しい Web ビューを作成できます。
  • を使用して独自の html をロードできますwebkit_web_view_load_html_string()
  • webkit_web_view_go_back_or_forward()または、またはを使用して戻ることもできますwebkit_web_view_go_back_or_forward()
于 2013-02-13T13:42:49.250 に答える