我对Flutter还很陌生,目前我在Flutter中调用Webview
时遇到了使用最新版本flutter docs中的webview_flutter
包(即4.0.7
)作为初始cookie的问题
WebView.initialCookies已被删除。在调用WebViewController.loadRequest之前,请使用WebViewCookieManager.setCookie。
目前Flutter已将方法WebView
with controller更改为WebViewWidget
with controller。
这是我初始化WebView
的新代码
_webViewController = WebViewController()
..loadRequest(
Uri.parse("https://flutter.dev/"),
)
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setNavigationDelegate(NavigationDelegate(
onPageStarted: (url) {
print("come here: $url");
},
onPageFinished: (url) async {
final cookies = await _webViewController.runJavaScriptReturningResult(
'document.cookie',
);
// I can get cookie when page is reload or go to next page here
print("cookie: $cookies");
},
));
这是用于生成视图
// view build
return Stack(
children: [
WebViewWidget(
controller: widget.controller,
),
],
);
我可以得到网站的cookie每次重新加载或通过捕捉动作onPageFinished
转到下一页。但问题是,我想初始化的网址与initialCookies
时,录音到Webview。
目前的答案是webview_flutter: ^3.0.0,因此目前无法用于最新版本。
非常感谢你的帮助。
2条答案
按热度按时间jtw3ybtb1#
您可以使用
initialUrl
和onPageFinished
参数来完成此操作h79rfbju2#
对于那些谁寻找一个版本
4.0.0+
的答案就像我一样。这就是我的答案
**注意:**除非widget不会调用,否则调用widget时,Domain必须与url相同。