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
相关产品推荐
相关产品推荐

