如何读取Flutter网络视图的HttpOnly cookie



我有一个Flutter应用程序,它由一个WebView组成。我想从这个WebView中读取一个特定的cookie,它被标记为HttpOnly。我怎样才能做到这一点?

我能够通过WebViewController.evaluateJavascript()成功读取HttpOnly cookie,但我也对HttpOnly cookie感兴趣。HttpOnly cookie不会使用此方法显示。

经过一番挖掘,我自己发现:必须使用WebViewCookieManager,一个单独的包。

示例代码:

import 'package:webview_cookie_manager/webview_cookie_manager.dart';
...
final _cookieManager = WebviewCookieManager();
final gotCookies = await _cookieManager.getCookies("https://example.com/");
for (var item in gotCookies) {
print(item);
}

另请参阅https://github.com/flutter/flutter/issues/27795和https://pub.dev/packages/webview_cookie_manager

您可以使用await WebViewController.evaluateJavascript(source: 'document.cookie');读取cookie

以下是您可以做的更多细节:Flutter 中的Webview

final String cookies = await WebViewController.evaluateJavascript(source: 'document.cookie');
final cookieList = cookies.split('; ');
final result = cookieList.firstWhere((e) => e.startsWith(...), orElse: () => null);
print(result);

最新更新