Digamos que quiero usar un WebKitWebView
en GTK para mostrar algunas páginas HTML estáticas. Estas páginas usan un esquema de URL personalizado, llamémoslo custom://
. Este esquema representa un archivo local cuya ubicación no se conoce de antemano, en el momento en que se genera el HTML. Lo que hago es conectar a la señal de la vista web navigation-requested
, y hacer esto:¿Cómo manejar un esquema de URL personalizado en Webkit GTK?
const gchar *uri = webkit_network_request_get_uri(request);
gchar *scheme = g_uri_parse_scheme(uri);
if(strcmp(scheme, "custom") == 0) {
/* DO FILE LOCATING MAGIC HERE */
webkit_web_view_open(webview, real_location_of_file);
return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
}
/* etc. */
Esto parece funcionar bien, a menos que el esquema se utiliza en una etiqueta <img>
, por ejemplo: <img src="custom://myfile.png">
, al parecer éstos no lo hacen pasar por la señal navigation-requested
.
Me parece que debe haber alguna manera de registrar un controlador para el esquema de URL personalizado con Webkit. es posible?
Gracias, esto fue el puntero en la dirección correcta que necesitaba. Para completar, la respuesta es conectarse a la señal 'resource-request-starting' de la vista web, y hacer la manipulación con' webkit_web_resource_get_uri() 'desde ese manejador. (Tenga en cuenta que esto solo funciona en webkit> = 1.1.14.) – ptomato