Запретить переход в на другой url на WebKit2

import gi

gi.require_version('WebKit2', '4.0')
gi.require_version('Gtk', '3.0')

from gi.repository import WebKit2, Gtk

Gtk.Settings.get_default().props.gtk_touchscreen_mode = True
window = Gtk.Window(title="View", resizable=False, decorated=False )
window.connect("delete-event", Gtk.main_quit)
settings = WebKit2.Settings(allow_file_access_from_file_urls=True, enable_back_forward_navigation_gestures=True)
webview = WebKit2.WebView.new_with_settings(settings)

def on_decide_policy(web_view, decision, decision_type):
    if decision_type == WebKit2.PolicyDecisionType.NAVIGATION_ACTION:
        action = decision.get_navigation_action()
        request = action.get_request()
        if request.get_uri().startswith("http://localhost/"):
            return False
        else:
            #request.set_uri("http://localhost/")
            return True
            
        print (decision)
    
def on_context_menu(web_view, context_menu, event, hit_test_result):
    return True

webview.connect("context-menu", on_context_menu)
webview.connect("decide-policy", on_decide_policy)
webview.load_uri("http://localhost/") 
window.add(webview)
window.maximize()
window.show_all()
Gtk.main()

Переходы в decide-policy видны, но не получается запретить переход через return True.


Ответы (1 шт):

Автор решения: eri

Получилось решить остановив загрузку

    else:
        web_view.stop_loading()
        return True

Но что будет если страница не загрузилась до конца при переходе на новую - получу недогруженный документ на экране?

→ Ссылка