You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wpf中WebView2拦截http链接时Uri返回about:blank#blocked的问题求助

Wpf中WebView2拦截http链接时Uri返回about:blank#blocked的问题求助

各位大佬好,我现在在WPF项目里用WebView2组件渲染HTML文档,需求是把文档里的<a>标签链接都在系统默认浏览器里打开,所以我做了个处理——拦截webView.CoreWebView2.NavigationStarting事件,在事件里拿到链接后调用默认浏览器打开,同时取消WebView2自身的导航。

但是现在遇到个头疼的问题:https开头的链接能正常拿到正确的Uri,可http开头的链接,从事件参数e.Uri里拿到的却是about:blank#blocked,完全没法正常跳转。

下面是我当前的事件处理代码:

private void CoreWebView2_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e)
{
    try
    {
        string uri = e.Uri.ToString();
        if (uri.StartsWith("https://") || uri.StartsWith("http://"))
        {
            Process.Start(new ProcessStartInfo(uri) { UseShellExecute = true });
            e.Cancel = true;
        }
    }
    catch (Exception ex)
    {
        webView.Source = new Uri(e.Uri.ToString());
        Log.AddException("Unable to open hyperlink in default browser due to error:  " + ex.ToString());
    }
}

我自己也尝试过一些办法,比如初始化WebView2的时候禁用Web安全,代码如下,但试了之后还是没效果:

CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("disable-web-security");
CoreWebView2Environment environment = await CoreWebView2Environment.CreateAsync(null, null, options);
await webView21.EnsureCoreWebView2Async(environment);

另外我还想着从事件的请求头里找找看能不能拿到真实的http链接,结果也没找到有用的信息。

有没有大佬遇到过类似的问题,或者能给我一些解决思路?万分感谢!

备注:内容来源于stack exchange,提问作者Seiont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:03:00