CefSharp没有显示"允许网站打开程序"点击`mailto:`链接时

时间:2017-11-24 09:09:51

标签: c# wpf cefsharp

我在CefSharp.Wpf.ChromiumWebBrowser

内托管了一个网站

在Internet Explorer上:

单击mailto-link "mailto:?subject=....&body=...." Internet Explorer显示弹出询问

  

允许网站为" mailto:?subject = ....& body = ...."

打开一个程序(Outlook)

Popup when clicking mailto-links

在ChromiumWebBrowser上: 该页面使用链接导航离开页面,并且不显示弹出窗口。

我必须提供哪些CefSharp才能让弹出窗口发生?

编辑:

在Chrome上:电子邮件在Outlook中打开

1 个答案:

答案 0 :(得分:2)

感谢James Thorpe's评论,我使用CefSharp.Example/RequestHandler.cs作为RequestHandler的基础 - 更改

bool IRequestHandler.OnBeforeBrowse (IWebBrowser browserControl, IBrowser browser,
    IFrame frame, IRequest request, bool isRedirect)
{
    if (request.Url.StartsWith ("mailto:"))
    {
        // use system defined handler for mailto:/ ...
        System.Diagnostics.Process.Start (request.Url); 

        // skip browse
        return true;
    }

    return false;
}


bool IRequestHandler.OnProtocolExecution (IWebBrowser browserControl, IBrowser browser, 
    string url) => false;

在我的情况下,如果mailto:收到,我想阻止浏览。 我确实使用自定义协议处理程序,所以我允许它们 - 现在。

我设置了这个RequestHandler(ChromiumWebBrowser-Instance).RequestHandler的实例,现在它可以工作了。

电子邮件打开,网站停留在原地。没有副作用 - 但是。