使用CefSharp v65加载本地html / css / js文件

问题描述 投票:1回答:1

我试图在WinForms中使用CefSharp v65加载本地html / css / js文件。

我找到了关于此的其他堆栈溢出帖子,但没有一个使用新的内置版本的FolderSchemeHandlerFactory,而是实现自己的版本。这是我在Scheme Handler上读到的文档:https://github.com/cefsharp/CefSharp/wiki/General-Usage在“Scheme Handler”标题下。

资料来源:Working with locally built web page in CefSharp

我尝试使用这样的新功能:

    public ChromiumWebBrowser browser;

    public void InitBrowser()
    {            
        var settings = new CefSettings();
        settings.RegisterScheme(new CefCustomScheme
        {
            SchemeName = "localfolder",
            SchemeHandlerFactory = new FolderSchemeHandlerFactory(
                rootFolder: @"..\..\..\..\CEFSharpExample\webpage",
                defaultPage: "index.html" // default
            )
        });

        Cef.Initialize(settings);

        string html = File.ReadAllText(@"..\..\..\webpage\index.html");
        browser = new ChromiumWebBrowser();
        browser.LoadHtml(html);
        this.Controls.Add(browser);
        browser.Dock = DockStyle.Fill;

    }

但是,我只是在没有css的情况下获取html,调试器中没有例外。有谁知道如何利用新的内置功能?

c# cefsharp
1个回答
1
投票

正如amaitland在评论中指出的那样,我的“请求不是作为[我正在]加载数据URI而对方案处理程序进行的”。

我更新后的工作代码如下(如果您想知道发生了什么事情,可以更加充实):

public partial class Form1 : Form
{
    InitializeComponent();
    InitBrowser();
}

public ChromiumWebBrowser browser;

public void InitBrowser()
{
    var settings = new CefSettings();

    settings.RegisterScheme(new CefCustomScheme
    {
        SchemeName = "localfolder",
        DomainName = "cefsharp",
        SchemeHandlerFactory = new FolderSchemeHandlerFactory(
            rootFolder: @"..\..\..\..\CEFSharpExample\webpage",
            hostName: "cefsharp",
            defaultPage: "index.html" // will default to index.html
        )
    });

    Cef.Initialize(settings);


    string html = File.ReadAllText(@"..\..\..\webpage\index.html");
    browser = new ChromiumWebBrowser("localfolder://cefsharp/");

    this.Controls.Add(browser);
    browser.Dock = DockStyle.Fill;   
}
© www.soinside.com 2019 - 2024. All rights reserved.