Flutter给WebView设置Cookie(Session)
Posted HackShendi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter给WebView设置Cookie(Session)相关的知识,希望对你有一定的参考价值。
Hello, I'm Shendi
最近整 WebView,因页面需要登录才能进入,所以需要设置登陆凭证
在网上没找到想要的答案,大多数都是在页面加载完使用执行js的方式
这里记录一下
首先引入 WebView 依赖,并在文件内引入 webview
# WebView
webview_flutter: 3.0.0
import 'package:webview_flutter/webview_flutter.dart';
WebView有一个属性为 initialCookies 可以初始化 Cookie
接收 WebViewCookie(name, value, domain)
WebView(
initialUrl: url,
initialCookies: [WebViewCookie(name: "名称", value: "值", domain: "域"), ...],
javascriptMode: JavascriptMode.unrestricted,
)
上面那样就已经完成了 Cookie 的设置
对于 Session 来说,首先还需要获取到 SessionId,一般第一次请求服务器时获取(登录),获取 SessionId 可以参考 Flutter进行HTTP请求并保存登陆状态(dio)
获取的内容大概如下,需要自己拆分
JSESSIONID=sessionid; Path=/; HttpOnly
拆分代码如下
int len = cookie.indexOf('=');
String name = cookie.substring(0, len);
cookie = cookie.substring(len);
len = cookie.indexOf(';');
String value = cookie.substring(1, len);
cookie = cookie.substring(len+1);
其中 domain 是指定作用域,一般为域名,例如 www.baidu.com
以上是关于Flutter给WebView设置Cookie(Session)的主要内容,如果未能解决你的问题,请参考以下文章
Flutter给WebView设置Cookie(Session)
Flutter关于webview_flutter设置cookie
Flutter - 在 WKWebView 中阻止 Webview Cookie