Flutter WebView保持登录状态



我正在尝试用flutter构建一个非常简单的混合应用程序:它基本上只连接到我的网站,就这样。我需要的所有功能都在网站本身。

我有一个登录系统,允许用户";"保持登录";即使在他们的会话结束时(顺便说一句,该网站是用Flask制作的(。

然而,在我的应用程序中,这一点很奇怪:有时有效,有时无效。我想这可能与我已经实现了一个原生的后退按钮功能(返回以前访问过的页面(有关,但我不知道该怎么办,因为;保持登录";该功能适用于除应用程序之外的任何地方。(甚至我手机上的谷歌chrome也能正常工作(

这是我的应用程序:

class _MyAppState extends State<MyApp>{
late WebViewController wv_controller;
@override
Widget build(BuildContext context){
return MaterialApp(
home: WillPopScope(
onWillPop: ()async{
String? url = await wv_controller.currentUrl();
if(url == "http://*mywebsite*/"){
return true;
} else {
wv_controller.goBack();
return false;
}
},
child: Scaffold(
body: Container(
child: SafeArea(
child: WebView(
javascriptMode: JavascriptMode.unrestricted,
initialUrl: "http://*mywebsite*/",
onWebViewCreated: (WebViewController wv){
wv_controller = wv;
},
),
),
),
),
),
);
}
}

我使用的是webview_flutter,它至少保留了我使用webview小部件浏览的谷歌网站上的数据。即使我重新启动应用程序,它也会保留登录会话。WebViewController Javascript模式已设置为unrestricted

WebViewController controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted);

最新更新