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!不会再出现烦人的同步失败重定向了。如果还有更好的方法希望给我留言,谢谢了!!

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

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

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

webview添加cookie有时失效

Passing cookie to webview In few following lines I will describe my solution, how to pass coo...
  • swust_chenpeng
  • swust_chenpeng
  • 2014年07月11日 19:09
  • 4888

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

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

Android cookies正确的更新方式

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

Android 客户端Cookie失效的问题

今天,遇到了Android客户端cookie失效的场景,当时有个疑问,cookie的有效期是由哪个属性决定的?这个有效期是服务端进行判断还是客户端判断? Cookie实际上是一小段文本信息。在Web...
  • jingkang0703
  • jingkang0703
  • 2015年07月22日 15:22
  • 2358

Android持久化保存cookie

在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容。一、请求网络获取cookie先看一...
  • shimiso
  • shimiso
  • 2014年09月03日 21:37
  • 20468

webview添加cookie有时失效

Passing cookie to webview In few following lines I will describe my solution, how to pass cookies ...
  • u012971339
  • u012971339
  • 2015年11月11日 17:51
  • 786

Android问题—Android中Cookie问题的处理

说这个之前,首先我们要理解两个概念:Session和Cookie Cookie只是Session机制的一种常用形式,我们也可以使用其他方式来作为客户端的一个唯一标识, 这个由服务器决定,唯一能够证明一...
  • u012758088
  • u012758088
  • 2017年04月05日 21:57
  • 297

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

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

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

在进行APP+H5混合开发的时候,一些功能是用native方法实现的,如登陆,一些功能是用H5实现的。所以往往需要将在native方法登陆的状态同步到H5中避免再次登陆。这种情况在Android开发中...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2016年05月31日 22:46
  • 17447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android webview cookie 同步时有时候会出现同步不成功的问题解决
举报原因:
原因补充:

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