android webview cookie 同步时有时候会出现同步不成功的问题解决

原创 2015年11月19日 20:58:14
这个问题不是随时重现,我们在同步之前会先删除所有之前的cookies,调用:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP /*&& method != null*/){cookieManager.removeSessionCookies(new ValueCallback() {@Overridepublic void onReceiveValue(Boolean value) {Log.d(TAG, "onReceiveValue value:"+value);}});}else{ cookieManager.removeSessionCookie();}

经过查阅n多stackoverflow后发现一个答案:You have used this line - if (sessionCookie != null) { cookieManager.removeSessionCookie(); }. To ensure you receive new cookie everytime.Seems like you have gone through same issue as I faced, check below link -removeSessionCookie() issue of android (code.google.com)it says that removeSessionCookie() is implemented in a thread, so whenever it is called; a thread starts and after your setCookie(url, cookieString); is called, it removes the new cookie you just set. So for some devices it works well as removeSessionCookie() is already executed, while, for some, it remove the cookie, and we get that problem.by using SystemClock.sleep(500); , you just gave system to finish removeSessionCookie() firstI suggest you remove this removeSessionCookie(); as you are setting only one cookie, so it won't conflict with other cookies. Your code will work seamlessly.

大概意思就是说, cookieManager.removeSessionCookie()这个方法是一个异步的方法,在删除还没有结束的时候,主线程调用CookieSyncManager.getInstance().sync();方法去同步,此时,removeSessionCookie()并没有删除结束,顺带就把刚刚同步过去的session给删除了,所以导致的同步失效,哎呀,发现问题,那么好解决了,在removeSessionCookie() 的时候SystemClock.sleep(500);ok!不会再出现烦人的同步失败重定向了。如果还有更好的方法希望给我留言,谢谢了!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

安卓学习笔记---AndroidWebview里设置Cookie遇到的坑

我们一般在使用WebView去加载H5界面的时候都会同步一下Cookie,一般的都会这么做: 在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Co...

Android在webview上设置cookie,部分cookie失效的问题

app主页的页面都是web开发的,只有登录页是原生的,这就需要Android在调用了登录接口并成功后,把登录信息作为cookie存起来。 网上有存cookie的方法: public void co...

android上WebView设置cookie,以及设置webview cookie在部分手机失效

这是在网上抄的cookie设置方案但是在android 4.3的手机设置cookie(我使用的测试机为中兴  ZTE android版本4.3 ) public void cookie(Contex...

android中给WebView设置Cookie

最近项目中用到WebView访问新浪支付页面,有个要求是必须是登录状态,否则会报Token过期,然后我简单的将我从cookie中取得的ticket,即一串数字可以代表用户登录的唯一标识作为参数拼接到u...

部分手机WebView无法成功同步Cookie问题的解决方案

欢迎使用Markdown编辑器写博本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图...

【WebView的cookie机制 】轻松搞定WebView cookie同步问题

在进行APP+H5混合开发的时候,一些功能是用native方法实现的,如登陆,一些功能是用H5实现的。所以往往需要将在native方法登陆的状态同步到H5中避免再次登陆。这种情况在Android开发中...

Android中清楚Cookie和WebView的缓存

前几天在做facebook链接的时候,总是第一次成功,第二次失败,后来分析,是本地的缓存没有清空,看了facebook sdk的源码才发现,果然,要做一步清楚cookie的操作: 一、清除cooki...

Android cookies正确的更新方式

之前的更新方式一搜cookies的使用,很容易搜到很多文章,基本的几步大致相同,如下图:基本上都要求大家先调用cookieManager.removeAllCookie()或者调用 cookieMan...

Xcode 中加载插件不成功,不显示 load Bundle 的界面问题解决

今天在编辑 Xcode 插件的时候,将原来插件删除后,重新添加一直不成功,总也不显示 load Bundle 的界面,试了好几个插件也不成功  最终看大了一位大神的解决方法,让我又重新使用了插件,再...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)