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

Flutter中flutter_inappwebview的WebViewClient.onLoadResource替代方案咨询

Flutter中监听网页资源加载的替代方案

如果你需要监听网页加载的各类资源(对应Android原生WebView的WebViewClient.onLoadResource),可以通过以下两种主流方案实现:

1. 官方webview_flutter包(推荐)

在webview_flutter 4.0及以上版本中,NavigationDelegate提供了onResourceRequest回调,可捕获网页发起的所有资源请求(如图片、脚本、样式表、接口请求等)。

示例代码:

WebView(
  initialUrl: 'https://example.com',
  navigationDelegate: NavigationDelegate(
    onResourceRequest: (ResourceRequest request) {
      // 打印当前加载的资源URL
      print('正在加载资源: ${request.url}');
      // 允许资源继续加载
      return NavigationDecision.navigate;
    },
  ),
)

2. 第三方包flutter_inappwebview(功能更丰富)

这个包对原生WebView的API封装更完整,不仅提供了直接对应onLoadResource的回调,还支持监听资源加载的开始、结束全流程:

示例代码:

InAppWebView(
  initialUrlRequest: URLRequest(url: Uri.parse('https://example.com')),
  onLoadResource: (controller, resource) {
    // 资源加载完成时触发,对应原生onLoadResource逻辑
    print('已加载资源: ${resource.url}');
  },
  onResourceLoadStart: (controller, resource) {
    // 资源开始加载时触发
    print('开始加载资源: ${resource.url}');
  },
  onResourceLoadFinish: (controller, resource) {
    // 资源加载结束时触发
    print('结束加载资源: ${resource.url}');
  },
)

注意:使用flutter_inappwebview需要在iOS和Android的项目配置文件中完成相应权限及依赖配置,具体可参考包内的基础配置说明。

内容的提问来源于stack exchange,提问作者FF Gaming

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:44:58