WebView加载使用socket.io
的网页WebView myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient());
myWebView.loadUrl(socket_io_page_url);
使用Cookie维护会话。当android logout操作项被激活时,必须清除cookie并加载新的url,如下面的代码所示
WebView myWebView = (WebView)findViewById(R.id.webView);
CookieManager.getInstance().removeAllCookie();
myWebView.loadUrl(new_url);
这样可行,但与前一个url(socket_io_page_url)的连接不会立即终止。由于WebView不支持Web套接字,因此webview使用长轮询,并且等待大约20秒来断开先前的URL。超时可以改变,但这将是一个带宽成本很高的操作。
此时无法切换到本机java编码。因此,断开先前的连接对应用程序非常重要。我试过了
myWebView.destroy()
System.gc()** after new url load,
webSettings.setJavaScriptEnabled(false); and setting back
webSettings.setJavaScriptEnabled(true);
他们都没有奏效。使用更清洁应用程序终止应用程序会立即断开套接字。有没有办法断开以前加载的页面。