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

MAUI WebView中Android WebViewClient的ShouldInterceptRequest未触发(已确认Bug)

MAUI WebView自定义WebViewClient问题

问题概述

此问题已被确认为Bug,目前微软对该问题关注度较低。
我需要重写WebViewClient的shouldInterceptRequest方法,按照Android官方规范加载应用内HTML内容。

参考代码与可复现场景

我参考微软问答的示例代码实现了自定义Handler,相关代码如下:

// ...
.ConfigureMauiHandlers(handlers =>
{
    handlers.AddHandler<Microsoft.Maui.Controls.WebView, ProblemHandler2>();
});
// ...

internal class ProblemHandler2 : WebViewHandler
{
    protected override Android.Webkit.WebView CreatePlatformView()
    {
        var wv = new Android.Webkit.WebView(Android.App.Application.Context);
        wv.SetWebViewClient(new CustomWebClient());

        return wv;
    }
}

自定义Handler的具体问题

仓库中包含两个自定义Handler,各自存在不同问题:

  • ProblemHandler2:完全沿用官方示例代码,但设置MAUI WebView的Source属性无法触发Android WebView的导航,必须手动调用LoadUrl才能实现跳转:
WebViewHandler.Mapper.AppendToMapping("MyHandler", (handler, view) =>
{
#if ANDROID
    var xWv = handler.PlatformView;

    // ProblemHandler2必须手动调用此方法才能完成导航
    xWv.LoadUrl("https://www.google.com/");
#endif
});

this.wv.Source = "https://www.google.com/";
  • ProblemHandler1:使用默认返回值并添加自定义Handler,解决了导航触发的问题,但两个Handler存在一个共同的核心问题:

ShouldInterceptRequest方法始终未被调用,即使手动点击页面内链接导航也无任何响应。我已确认CustomWebClient已被正确创建并绑定到WebView。

除此之外,WebViewClient的其他回调方法也无法正常工作,例如:

public override void OnPageStarted(Android.Webkit.WebView view, string url, Bitmap favicon)
{
    Debugger.Break();
    Debug.WriteLine(url);

    base.OnPageStarted(view, url, favicon);
}

public override void OnPageFinished(Android.Webkit.WebView view, string url)
{
    Debugger.Break();
    Debug.WriteLine(url);

    base.OnPageFinished(view, url);
}

我还尝试通过WebViewHandler.Mapping直接设置自定义WebClient,结果同样无效:

WebViewHandler.Mapper.AppendToMapping("MyHandler", (handler, _) =>
{
#if ANDROID
    handler.PlatformView.SetWebViewClient(new CustomWebClient());
#endif
});

内容的提问来源于stack exchange,提问作者Luke Vo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:01:33