新浪微博官方的demo有个问题,运行后1、会报错2、认证过后再次点认证时会一闪而过
1、第一个报错很简单,demo给一个不存在的apiBtn设置显示和隐藏,把这个view注释就行了
2、这个问题很多人开始都会认为是本地做了缓存,下次登录时自动判断本地缓存是否存在(尤其存在keepAccessToken这种方法,保存token到本地),但是通过跟代码没发现问题,把本地缓存删除也还存在问题,网上查资料,发现挺多人问这个问题。有人提出登录时,新浪会给一个token,这个token是有时间限制的,一定时间内有效,所以一定是被webview缓存了,以至于每次登录时会自动登录。又找了找清除webview的coockie的方法,问题解决了。
在登录成功回调onComplete方法里加入对webview清除coockie方法:
CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(MainActivity.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();