如何在flutter_inappwebview中启用第三方Cookie
flutter_inappwebview 已内置对应封装接口,无需自行编写原生桥接代码,安卓端内部会自动匹配你提供的原生版本判断逻辑,具体实现步骤如下:
- 首先导入插件依赖包:
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
- 调用CookieManager的设置方法,建议在WebView实例初始化前调用:
// 全局开启所有后续创建的WebView的第三方Cookie权限 await CookieManager.instance().setAcceptThirdPartyCookies( webView: null, accept: true, );
如果需要单独给某个已创建的WebView设置,传入对应WebViewController即可:
await CookieManager.instance().setAcceptThirdPartyCookies( webView: yourWebViewController, accept: true, );
完整使用示例
import 'package:flutter/material.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; class CustomWebViewPage extends StatefulWidget { const CustomWebViewPage({super.key}); @override State<CustomWebViewPage> createState() => _CustomWebViewPageState(); } class _CustomWebViewPageState extends State<CustomWebViewPage> { InAppWebViewController? _webViewController; @override void initState() { super.initState(); _initCookieConfig(); } Future<void> _initCookieConfig() async { // WebView创建前全局设置开启第三方Cookie await CookieManager.instance().setAcceptThirdPartyCookies( webView: null, accept: true, ); } @override Widget build(BuildContext context) { return Scaffold( body: InAppWebView( onWebViewCreated: (controller) { _webViewController = controller; // 也可在WebView创建完成后单独设置 // CookieManager.instance().setAcceptThirdPartyCookies( // webView: controller, // accept: true, // ); }, initialUrlRequest: URLRequest(url: WebUri("https://目标访问地址")), ), ); } }
注意事项
- 安卓端仅Android 5.0(API 21)及以上系统需要手动开启第三方Cookie,低于该版本系统默认允许,插件会自动做版本判断,无需额外处理
- iOS端系统会自动适配对应的Cookie规则,调用该接口同样生效
内容的提问来源于stack exchange,提问作者Asnim P Ansari
相关产品推荐
相关产品推荐

