Supposons que je souhaite utiliser un WebKitWebView
dans GTK pour afficher des pages HTML statiques. Ces pages utilisent un schéma d'URL personnalisé, appelons-le custom://
. Ce schéma représente un fichier local dont l'emplacement n'est pas connu à l'avance, au moment où le code HTML est généré. Ce que je fais est de connecter au signal navigation-requested
du WebView, et le font:Comment gérer un schéma d'URL personnalisé dans 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. */
Cela semble fonctionner très bien, à moins que le système est utilisé dans une balise <img>
, par exemple: <img src="custom://myfile.png">
, apparemment ceux-ci ne passer par le signal navigation-requested
.
Il me semble qu'il devrait y avoir un moyen d'enregistrer un gestionnaire pour le schéma d'URL personnalisé avec Webkit. Est-ce possible?
Merci, cela a été le pointeur dans la bonne direction que je avais besoin. Pour être complet, la réponse est de se connecter au signal 'resource-request-starting' de la webview, et de faire la manipulation avec' webkit_web_resource_get_uri() 'depuis ce gestionnaire. (Notez que cela ne fonctionne que sur webkit> = 1.1.14.) – ptomato