Flutter的网络视图-如何清除会话状态?

uajslkp6  于 2023-02-13  发布在  Flutter
关注(0)|答案(2)|浏览(459)

我有一个应用程序,可以通过Javascript登录到特定页面并执行一些命令。但当我再次启动应用程序时,它应该会打开登录表单。但相反,它会保持登录状态,并转到用户的屏幕。

child: WebView(
              initialUrl:
                  'https://thepage.com/m/customer/account/login/',
              onWebViewCreated: (c) {
                _webviewController = c;
                print("cleaning the cache");
                _webviewController.clearCache();
              },
              onPageFinished: (String page) async {
                setState(() {
                  _isPageLoaded = true;
                });
              },
              javascriptMode: JavascriptMode.unrestricted,
            ),

我试着清理该高速缓存,但可能还不够。

I/zygote64( 5259): Compiler allocated 6MB to compile void android.view.ViewRootImpl.performTraversals()
I/flutter ( 5259): cleaning the cache
pprl5pva

pprl5pva1#

我认为问题是你没有清除cookie。我在登录一个页面时遇到了同样的问题,它仍然保持登录状态,我通过清除onWebViewCreated回调中的cookie修复了这个问题:

onWebViewCreated: (webViewController) {
    _controller.complete(webViewController);
    webViewController.clearCache();
    final cookieManager = CookieManager();
    cookieManager.clearCookies();
},
bis0qfac

bis0qfac2#

您应该清除cookie以启动新会话,要清除cookie,您可以执行以下操作'

late final WebViewCookieManager cookieManager = WebViewCookieManager();
 void clearCookies() async {
   await cookieManager.clearCookies();
 }

and call the function in初始化

相关问题