Flutter Webview插件不会在iOS上保存会话cookie?



我正在使用Flutter和flutter_webview_plugin在Android Studio上开发一个简单的应用程序。

起始 URL 是登录页面。登录后,我关闭应用程序,然后重新打开它。 重新打开后,我仍然在Android上登录,但在iOS上,我再次看到登录页面。

如何保留会话 Cookie?

我已经在实例化插件时设置了clearCookies: false,。 我在这里看到一些关于iOS上的NSHTTPCookieStorage的提及,但不确定这是否是解决我问题的关键。

这是我的代码:

import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
class WebView extends StatelessWidget {
final String selectedUrl = "https://servicedesk.roff.pt/suporte";
@override
Widget build(BuildContext context) {
return new SafeArea(
left: false,
top: true,
right: false,
bottom: false,
child: WebviewScaffold(
url: selectedUrl,
withZoom: true,
withLocalStorage: true,
clearCookies: false,
hidden: true,
initialChild: Container(
color: Colors.black,
child: const Center(
child: Padding(
padding: EdgeInsets.all(8.0),
child: Image(
image: AssetImage('lib/assets/splash.png'),
),
),
),
),
),
);
}
}

感谢所有帮助

要在iOS平台上获得与Android相同的结果,您必须确保从同一WebView池创建WebView。不幸的是,当前版本的 FlutterWebViewPlugin 不支持这种行为。

您可以改用此分叉。需要明确的是:使用将导致从同一池创建所有Web 视图。如果这不是问题,请继续。

你可以使用我的库,它是flutter_webview_plugin的分支

这会从同一池在 iOS 上创建 Web 视图,这意味着每个 Web 视图实例都将记住会话

这也使用了较新的Android嵌入,因此在Android中也很好用。

最新更新