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

Flutter WebView从3.0.4升级到4.7.0后如何传递数据?

升级webview_flutter到4.7.0后如何传递初始URL数据

你之前使用webview_flutter 3.0.4时,通过initialUrl传递授权URL给WebView,升级到4.7.0版本后,只需要修改WebViewController的loadRequest方法参数即可完成数据传递:

旧版本代码:

WebView(
  initialUrl: snapshot.data!.authorizationUrl!, // 要传递的目标URL
  javascriptMode: JavascriptMode.unrestricted,
)

新版本修改后的代码:

controller = WebViewController()
  ..setJavaScriptMode(JavaScriptMode.unrestricted)
  ..setBackgroundColor(const Color(0x00000000))
  ..setNavigationDelegate(
    NavigationDelegate(
      onProgress: (int progress) {
        // 更新加载进度条
      },
      onPageStarted: (String url) {},
      onPageFinished: (String url) {},
      onWebResourceError: (WebResourceError error) {},
      onNavigationRequest: (NavigationRequest request) {
        if (request.url.startsWith('https://www.youtube.com/')) {
          return NavigationDecision.prevent;
        }
        return NavigationDecision.navigate;
      },
    ),
  )
  ..loadRequest(Uri.parse(snapshot.data!.authorizationUrl!)); // 替换为你要传递的授权URL

核心变化是把旧版的initialUrl参数,直接放到新版的loadRequest(Uri.parse(...))中,这样就能让WebView加载你指定的授权URL了。

内容的提问来源于stack exchange,提问作者Eben Oasis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 18:12:06