Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止使用CEFSharp库返回导航?_C#_Cefsharp - Fatal编程技术网

C# 如何防止使用CEFSharp库返回导航?

C# 如何防止使用CEFSharp库返回导航?,c#,cefsharp,C#,Cefsharp,我想阻止使用CEFSharp库和WinForms导航回我的应用程序。我没有找到解决方案,只有以下链接: 但这对我不起作用。 你能帮我吗 -->RequestHandler.cs class RequestHandler : IRequestHandler { public bool OnBeforeBrowse(IWebBrowser browser, IRequest request, bool isRedirect, bool isMainFrame) { i

我想阻止使用CEFSharp库和WinForms导航回我的应用程序。我没有找到解决方案,只有以下链接: 但这对我不起作用。 你能帮我吗

-->RequestHandler.cs

class RequestHandler : IRequestHandler
{
    public bool OnBeforeBrowse(IWebBrowser browser, IRequest request, bool isRedirect, bool isMainFrame)
    {
        if ((request.TransitionType & TransitionType.ForwardBack) != 0)
        {
            return true;
        }
        return false;
    }

    public bool OnCertificateError(IWebBrowser browser, CefErrorCode errorCode, string requestUrl)
    {
        return false;
    }

    public void OnPluginCrashed(IWebBrowser browser, string pluginPath)
    {

    }

    public CefReturnValue OnBeforeResourceLoad(IWebBrowser browser, IRequest request, bool isMainFrame)
    {
        return CefReturnValue.Continue;
    }

    public bool GetAuthCredentials(IWebBrowser browser, bool isProxy, string host, int port, string realm, string scheme,
        ref string username, ref string password)
    {
        return true;
    }

    public bool OnBeforePluginLoad(IWebBrowser browser, string url, string policyUrl, WebPluginInfo info)
    {
        return true;
    }

    public void OnRenderProcessTerminated(IWebBrowser browser, CefTerminationStatus status)
    {

    }
}
-->在Program.cs中

_browser = new ChromiumWebBrowser(url)
        {
            RequestHandler = new RequestHandler(),
            Dock = DockStyle.Fill,
            RequestHandler = new RequestHandler()
        };

另外,我在浏览器中启动的应用程序是单页的。

您使用的是什么版本?您尝试过的代码是什么样子的?版本是41.0.1,我正在尝试使用链接中建议的RequestHandler类的OnBeforeBrowse方法,但它仅在应用程序启动时被调用一次,而在应用程序中使用Backspace时未被调用。在使用google导航到网站时,使用Backspace对我有效,然后按Backspace。如果它对您不起作用,那么您可以提供一个
jsfiddle
来重现问题。实际上,如果您可以分支
minimal-example
来演示您的问题,那会更好。我用实现替换OnBeforeBrowse,但后退按钮仍然有效。我是否应该添加browser.NavStateChanged+=OnBrowserNavStateChanged;或者它不是强制性的?