假设我想WebKitWebView
在GTK中使用一个静态HTML页面.这些页面使用自定义URL方案,让我们调用它custom://
.此方案表示在生成HTML时其位置未知的本地文件.我所做的是连接到navigation-requested
webview 的信号,并执行以下操作:
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. */
这似乎工作正常,除非该方案用于标签,例如:
,显然这些不通过
navigation-requested
信号.
在我看来应该有一些方法来为Webkit注册自定义URL方案的处理程序.这可能吗?
我对WebKit的Chromium端口比较熟悉,但我相信您可能需要使用webkit_web_resource_get_uri
(请参阅webkitwebresource.h)来处理图像等资源.