c - 使用 webkitgtk+ 加载资源

标签 c webkit gtk

当我调用 webkit_web_view_load_string() 将 html 内容加载到 一个 webkitview,webkit 总是拒绝加载 html 内容中引用的本地文件或资源(css、javascript、图像)。

注意:我正在使用 GResource 将资源加载到二进制文件中? 这是一个例子:

GBytes *data;
GResource *resource;
GByteArray* gbarray;  resource = one_file_get_resource();

.

. . .

g_resources_register (resource);
data = g_resource_lookup_data (resource,"/com/test/resources/index.html", G_RESOURCE_LOOKUP_FLAGS_NONE,NULL);
gbarray  = g_bytes_unref_to_array(data);
const gchar* data_char = gbarray->data;

. . .

webkit_web_view_load_string(webView, data_char, NULL, NULL,"");

这是我的 GResources 的 xml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/com/test">
    <file>resources/index.html</file>
    <file>resources/style.css</file>
  </gresource>
</gresources>

现在我的问题是加载了 index.html 但没有 css 文件。我得到了没有样式的 html 文件!我该如何解决这个问题,谢谢?!

最佳答案

您应该以某种方式告诉 WebKit 可以加载本地资源。您可以通过使用 webkit_web_view_load_uri 并确保使用 file:// URI 来执行此操作。否则,WebKit 将假定字符串(在 load_string 中)来自不受信任的来源,因此不允许访问本地资源。

关于c - 使用 webkitgtk+ 加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245511/

相关文章:

c - 二进制到 float

css - webkit-filter 中断溢出 : hidden

WebKit 的百分比大小 float 错误 : are there any workarounds?

c - 从输入中获取内存地址。 C

c - webassembly (C) 如何创建配置文件?

objective-c - Cocoa Webkit - 禁用文本选择,但允许文本字段选择

c - 'const gchar *' 是什么意思,使用后是否需要释放该内存?

c++ - 如何将我的无限循环与 GTK+ 集成?

c++ - 如何在 GTK+ 中为 GtkToggleButton 设置组(就像 GtkRadioButton 那样)?

c - 如何处理socket服务器中select()引起的 "Bad file descriptor"?