如何设置cookie到WebView?

时间:2014-01-21 16:40:58

标签: android cookies webview

我有一个WebView的片段,我想设置一个cookie,我得到她的字符串“name = value”。

以下SO链接建议在执行“cookieManager.removeSessionCookie()”后进行休眠。

Android WebView Cookie Problem

我的AsyncTask的代码如下:

private class WebViewTask extends AsyncTask<Void, Void, Boolean> {
    String sessionCookie;
    CookieManager cookieManager;

    @Override
    protected void onPreExecute() {
        CookieSyncManager.createInstance(getActivity());
        cookieManager = CookieManager.getInstance();

        sessionCookie = cookieManager.getCookie(BASE_URL);

        if (sessionCookie != null) {
            sessionCookie = sessionCookie + "; domain=" + BASE_URL;
            /* delete old cookies */
            cookieManager.removeSessionCookie();
        }

        super.onPreExecute();
    }
    protected Boolean doInBackground(Void... param) {
        /* this is very important - THIS IS THE HACK */
        SystemClock.sleep(1000);
        return false;
    }
    @Override
    protected void onPostExecute(Boolean result) {

        if (sessionCookie != null) {
            cookieManager.setCookie(BASE_URL, sessionCookie);
            CookieSyncManager.getInstance().sync();
        }

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(false);
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return super.shouldOverrideUrlLoading(view, url);
            }

        });
        mWebView.loadUrl(EDIT_URL);
    }
}

在该代码中,我正确地使用以下格式的sessionCookie:“name = value”,然后我添加; domain = BASE_URL。

我如何正确地将会话cookie设置为WebView?

PD:

  • mWebView是我想要设置cookie的片段中的WebView

  • 获取mWebView对象后,从AsyncTask的{​​{1}}方法执行此onCreateView

  • 如果有帮助,我会使用 robospice 改造库。

其他SO问题检查:

提前致谢。

0 个答案:

没有答案