前一段时间就在开放新浪的oauth 2.0。我是用的java的SDK,而且用到了webView。
在我第一次授权成功的时候,新浪端应该是做了页面缓存的。
而在我第二次授权的时候,会出现自动登录的现象。
这样就导致了,该用户只能用一个帐号登录的。这样是与设计要求不符合的。用户体验也是相当的不好。
在网上也找到了相关的资料。
其中
- webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
这个方法我开始认为是最有效的,但是在却没起到任何作用。
而一个应用的缓存,如果你手机root过的话,那么你是可以用RE在该应用的目录下能看到缓存的数据的。所以,你可以尝试删除该应用的缓存。
- File file = CacheManager.getCacheFileBaseDir();
- if (file.exists()) {
- file.delete();
- }
- webview.clearCache(true);
- webview.clearHistory();
- webview.clearFormData();
- context.deleteDatabase("webview.db");
- context.deleteDatabase("webviewCache.db");
而我本人用的是:
- CookieSyncManager.createInstance(context);
- CookieManager cookieManager = CookieManager.getInstance();
- cookieManager.removeAllCookie();
这个方法在用一定的延迟,也就是说第一次你授权成功,第二次点授权的时候,还是会自动登录,第三次就不会了!