1

我正在使用 CefGlue(嵌入铬的 .net 包装器)我需要做一些概念证明,所以我创建了自己的特殊 html 文件,其中包含我需要测试的内容。但是我找不到加载这些文件的方法文件。

CefBrowserHost.CreateBrowser(cefWindowInfo, cefClient, cefBrowserSettings, url);需要一个 url,并且没有接受内容作为字符串的重载方法。所以问题是:如何从磁盘加载 html 文件?

4

2 回答 2

2

我没有使用 CefGlue - 但通常您可以使用自定义 cef 资源处理程序来加载文件。简而言之,当 CEF 看到您的 URL 时,它们将通过您设置的资源覆盖处理程序进行调用,然后将该资源读入字节流。在我们的例子中,我们读取了一个编译到我们的应用程序资源中的 html 文件。在您的情况下,我想您当时也可以从磁盘读取资源,尽管我没有这样做。如果您可以将资源编译到您的 C# 应用程序中,您可以根据需要将 html 文件添加到资源中。

在我们的例子中,我们将 url 传递给 CreateBrowserSync(),CEF 最终调用我们的 ResourceHandler 来加载它。CefClient c++ 示例有一个很好的示例,请参阅 resource_util_win.cpp。

这是在 CefResourceHandler 的处理程序覆盖中设置的。我们覆盖了GetResourceHandler,他们的示例覆盖了 SchemeHandler 中的 ProcessRequest。请参阅 CefClient 示例中的 scheme_test.cpp。

他们样本中的大部分代码都是样板文件,您应该能够使用它们所拥有的内容作为实现的基础——不过这里列出的代码实在太多了。

于 2015-04-22T20:34:10.883 回答
2

我找到了一个解决方案:只需在 url 参数中传递文件的完整路径,一切正常。这就像 chrome 从磁盘打开文件一样,所以我不知道为什么我第一次没有尝试过。

于 2015-04-22T20:56:16.920 回答