我有一个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);