Flutter的Webview-如何清除会话状态?

时间:2019-07-13 17:54:35

标签: flutter webview

我有一个可以登录到特定页面并通过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

1 个答案:

答案 0 :(得分:0)

我认为问题在于您没有清除Cookie。我在登录页面时遇到了同样的问题,并且保持登录状态,这是通过清除onWebViewCreated回调中的cookie来解决的:

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