我在玩CefGlue (铬内嵌的.net包装器),我需要做一些概念的证明,所以我创建了自己的特殊html文件,其中包含了我需要测试的内容,但是我无法找到加载这些文件的方法。
CefBrowserHost.CreateBrowser(cefWindowInfo, cefClient, cefBrowserSettings, url);需要一个url,并且没有将内容作为字符串接受的重载方法。所以问题是:如何从磁盘加载html文件?
发布于 2015-04-22 20:56:16
我找到了一个解决方案:只需将完整的路径传递到url参数中的文件,一切就都正常了。它就像从磁盘打开铬文件,所以我不知道为什么我没有尝试第一次。
发布于 2015-04-22 20:34:10
我没有使用CefGlue,但是通常您可以使用自定义的cef资源处理程序来加载文件。简单地说,当CEF看到您的URL时,它们将通过您设置的资源覆盖处理程序进行调用,然后该处理程序将该资源读入字节流中。在本例中,我们读取了编译到应用程序资源中的html文件。在您的例子中,我想您当时也可以从磁盘读取资源,尽管我还没有这样做。如果您可以将资源编译到您的C#应用程序中,那么可以将html文件添加到参考资料中,如果您愿意的话。
在本例中,我们将url传递给CreateBrowserSync(),而CEF最终调用我们的ResourceHandler来加载它。CefClient c++示例有一个很好的示例,参见resource_util_win.cpp。
这是在CefResourceHandler中的Handler覆盖中设置的。我们重写了GetResourceHandler,他们的例子覆盖了ProcessRequest in SchemeHandler。请参阅scheme_test.cpp示例中的CefClient。
他们的示例中的大部分代码都是非常普通的,您应该能够使用它们作为实现的基础--但是在这里列出这些代码实在太多了。
https://stackoverflow.com/questions/29783166
复制相似问题