以前自己用webview,可能很多人用都只是用到loadURL方法就完了,前几天发现加载网页的时候网页有个转圈圈的进度条这种,发现他就一直转啊转,最后发现设置一个webview的dom写入属性为true就行了。还有今天遇到cookie的问题,本来加载的URL说是加上登录码实现自动登录,但是发现切换帐号之后居然是以前的帐号的信息。后来尝过每次在进去Activity的时候先清除然后再同步cookie,却每次进去要求登录,最后使出大招打断点,才发现所谓的自动登录了并没有cookie。可能得和服务端研究下。哈哈,以前这块的确用的少,需要慢慢积累π_π。
这个问题在之前就解决了,记录下吧。顺便把以前的代码稍微提取了下。还是提取了个BaseWebAct。所有的webview都继承自它。相同的方法或者操作可以放里面。
//判断cookie是否可用
protected booleancomPareCookie(String url) {
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie(url);
try{
if(cookie.contains("wxm_key")){//这个是我们服务端自己定义成这样的,这个字段还在就说明cookie还没过期。
String[] map=cookie.split(";");
for(String mapkey:map){
if(mapkey.contains("open_id=")&&mapkey.trim().equals("open_id="+member_id)){
return true;
}
}
}
}catch(Exception e) {
e.printStackTrace();
}
return false;
}
如果cookie还没过期就不去请求获取新的授权码自动登录了,可以直接带上cookie打开网页。
关于cookie的管理相关主要是CookieManager,CookieSyncManager相关的类和方法。