我正在尝试让这个用于安卓代码的WebView保留会话cookie,这样当应用程序关闭而用户再次启动它时,他们可以保持登录状态。我在这方面是个新手,我在尝试弄清楚这一点时感到很沮丧。我需要改变什么?请好心,因为我是一个笨蛋,请描述,即使你必须为我编辑它,如果这对你来说更容易。
我导入了CookieManager和CookieSyncManager,但不知道下一步该做什么。我已经阅读了所有的文档,并花了几个小时试图弄清楚如何让它保存cookies,这样用户就不需要再次登录,我就是搞不明白……
package com.template.WebViewTemplate;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
public class WebViewTemplate extends Activity {
private WebView myWebView;
/** Called when the activity is first created. */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { // Enables browsing to previous pages with the hardware back button
myWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myWebView = (WebView) findViewById(R.id.webview); // Create an instance of WebView and set it to the layout component created with id webview in main.xml
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://zuneboards.com/forums/mgc_chatbox.php?do=view_chatbox"); // Specify the URL to load when the application starts
//myWebView.loadUrl("file://sdcard/"); // Specify a local file to load when the application starts. Will only load file types WebView supports
myWebView.setWebViewClient(new WebViewKeep());
myWebView.setInitialScale(1); // Set the initial zoom scale
myWebView.getSettings().setBuiltInZoomControls(true); // Initialize zoom controls for your WebView component
myWebView.getSettings().setUseWideViewPort(true); // Initializes double-tap zoom control
}
private class WebViewKeep extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}}}
发布于 2015-01-19 16:01:05
您可以将其与Web设置一起使用:
webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);同时导入:
import android.webkit.WebSettings;
import android.webkit.WebView;https://stackoverflow.com/questions/8196956
复制相似问题