我有一个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问题检查:
提前致谢。