Joa*_*rom 9 cookies android login http webview
我有一项活动可让您登录页面.在下一个活动中,如果登录成功,它应该显示基于cookie的网页.cookie被重新启动,我尝试使用以下代码将其放在webView上:
Cookie sessionCookie = LoginWebView.cookie;
CookieSyncManager.createInstance(webview.this);
CookieManager cookieManager = CookieManager.getInstance();
if (sessionCookie != null) {
cookieManager.removeSessionCookie();
String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain();
Log.v(TAG, "COOKIE SYNC: " + cookieString);
cookieManager.setCookie(domain, cookieString);
CookieSyncManager.getInstance().sync();
}
webView.setWebViewClient(new MyWebViewClient ());
webView.loadUrl("http://a_page.com/getpageiphone.aspx?p=home");
Run Code Online (Sandbox Code Playgroud)
这是基于StackOverflow上其他问题的代码而丢失的,但是当我加载网页时它似乎不起作用.似乎我的代码有些问题,但我看不到哪里,我开始认为我做错了.
你用过这条线 -
if (sessionCookie != null) {
cookieManager.removeSessionCookie();
}
Run Code Online (Sandbox Code Playgroud)
.确保您每次都收到新的cookie.
好像你遇到了我面临的同样问题,请查看以下链接 -
removeSessionCookie()问题android(code.google.com)
它说它removeSessionCookie()是在一个线程中实现的,所以每当它被调用时; 线程启动,在setCookie(url, cookieString);调用之后,它会删除刚刚设置的新cookie.因此对于某些设备而言,它removeSessionCookie()已经执行得很好,而对于某些设备,它会删除cookie,我们就会遇到这个问题.
通过使用SystemClock.sleep(500);,你只是让系统首先完成removeSessionCookie()
我建议你删除这个,removeSessionCookie();因为你只设置一个cookie,所以它不会与其他cookie冲突.您的代码将无缝地工作.
| 归档时间: |
|
| 查看次数: |
9089 次 |
| 最近记录: |