У меня есть приложение Flutter, состоящее из WebView. Я хотел бы прочитать определенный файл cookie из этого WebView, который помечен как HttpOnly. Как я могу этого добиться?
Мне удалось успешно прочитать файлы cookie, отличные от HttpOnly, через WebViewController.evaluateJavascript()
, но меня также интересуют файлы cookie HttpOnly. При использовании этого метода файлы cookie HttpOnly не отображаются.
Вы можете прочитать файлы cookie, используя await WebViewController.evaluateJavascript(source: 'document.cookie');
Вот еще несколько подробностей о том, что вы можете сделать: Веб-просмотр во Flutter
final String cookies = await WebViewController.evaluateJavascript(source: 'document.cookie');
final cookieList = cookies.split('; ');
final result = cookieList.firstWhere((e) => e.startsWith(...), orElse: () => null);
print(result);
Я понял это сам после некоторых копаний: нужно использовать 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
это именно то, что я пробовал. Однако файлы cookie HttpOnly не отображаются при чтении файлов cookie с помощью javascript.