Improved WebKit example setup/fallback

This commit is contained in:
2026-10-10 17:43:21 -05:00
parent 6ceb929242
commit 0559b69e7e
2 changed files with 49 additions and 2 deletions
+36
View File
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Example</title>
<link rel="shortcut icon" href="fave_icon.png">
<!-- <link rel="stylesheet" href="resources/css/base.css">-->
<!-- <link rel="stylesheet" href="resources/css/main.css">-->
<style>
html, body {
background-color: red;
color: white;
}
</style>
</head>
<body>
<h1>Hello, World!</h1>
<!-- <script src="resources/js/.js" charset="utf-8"></script>-->
<script>
function sayHelloWorld() {
console.log("Hello, World!");
}
window.addEventListener("load", () => {
window.webkit.messageHandlers.logger.postMessage("Hello, World!");
// const message = '{"topic": "alert", "content": "' + btoa("Hello, World!") + '"}';
// window.webkit.messageHandlers.backend.postMessage(message);
});
</script>
</body>
</html>
+13 -2
View File
@@ -47,7 +47,10 @@ class WebkitUI(WebKit2.WebView):
def _setup_content_manager(self):
content_manager = self.get_user_content_manager()
content_manager.connect("script-message-received", self._process_js_message)
# content_manager.connect("script-message-received", self._process_js_message) # If generic no sub group target
content_manager.connect("script-message-received::logger", self._process_logger_js_message)
content_manager.connect("script-message-received::backend", self._process_backend_js_message)
content_manager.register_script_message_handler("logger")
content_manager.register_script_message_handler("backend")
def _on_tls_errors(self, webview, uri, certificate, errors):
@@ -63,7 +66,12 @@ class WebkitUI(WebKit2.WebView):
webview.load_url(uri)
return True
def _process_js_message(self, user_content_manager, js_result):
def _process_logger_js_message(self, user_content_manager, js_result):
js_value = js_result.get_js_value()
message = js_value.to_string()
logger.info(message)
def _process_backend_js_message(self, user_content_manager, js_result):
js_value = js_result.get_js_value()
message = js_value.to_string()
@@ -95,6 +103,9 @@ class WebkitUI(WebKit2.WebView):
if not path:
path = settings_manager.path_manager.get_context_path()
if not path:
path = str( Path(__file__).parent )
base_path = Path(path)
index_file = base_path / "index.html"