Android WebView访问网站携带登录认证Cookies和动态自定义的cookies
2017-09-04 10:46
489 查看
最近项目几个页面要复用微信程序的网页。但是需要调用微网站登录接口,返回Cookies,webview访问需要的网页的时候携带。
并且还需要几个其他的动态改变的cookie,目的是根据这几个动态自定义cookies来决定网页的内容。如果不传,则显示最原始的网页。
下面一步一步来记录:
第一步先调用微信端登录接口,获取默认的三个cookies,即接口的Response的Header中拿到。这个操作自己找个合适的地方·进行:
拿到后自行存储。
第二步,在需要调用webview加载微信端程序网页的时候,在webview加载之前调用这个方法:
最后一步:在调用完上面方法之后,设置webview属性。这步如果不设置,那么你传入的自定义的cookies,微信端网页拿到之后你这里的网页是不会刷新的,即你只能显示微信端网页没有数据的时候的样子。
并且还需要几个其他的动态改变的cookie,目的是根据这几个动态自定义cookies来决定网页的内容。如果不传,则显示最原始的网页。
下面一步一步来记录:
第一步先调用微信端登录接口,获取默认的三个cookies,即接口的Response的Header中拿到。这个操作自己找个合适的地方·进行:
List<String> cookies = response.headers("Set-Cookie");
拿到后自行存储。
第二步,在需要调用webview加载微信端程序网页的时候,在webview加载之前调用这个方法:
/** * 设置cookies */ public void setCookies(){ CookieManager cookieManager = CookieManager.getInstance(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { CookieSyncManager.createInstance(getActivity()); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.setAcceptThirdPartyCookies(bindingView.wvHealthGut, true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { CookieManager.setAcceptFileSchemeCookies(true); } cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie(); cookieManager.removeAllCookie(); List<String> cookies = "拿到刚才获取的cookies"; int count = cookies.size(); for (int i = 0;i < count;i++){ cookieManager.setCookie("http://xxxx/", cookies.get(i)); } cookieManager.setCookie("http://xxxx/", "ChildId=" + childId);// 自自己添加除了上面登录认证的cookies,按照这个格式即可 cookieManager.setCookie("http://xxxx/", "KindergartenId=" + kindergartenId); cookieManager.setCookie("http://xxxx/", "Birthday=" + birthday); CookieSyncManager.getInstance().sync(); }
最后一步:在调用完上面方法之后,设置webview属性。这步如果不设置,那么你传入的自定义的cookies,微信端网页拿到之后你这里的网页是不会刷新的,即你只能显示微信端网页没有数据的时候的样子。
setCookies(); // 设置jsEnable属性 bindingView.wvHealthGut.getSettings().setJavaScriptEnabled(true);// 最后在loadUrl bindingView.wvHealthGut.loadUrl(webPath);
相关文章推荐
- Android WebView访问网站携带登录认证Cookies和动态自定义的cookies
- Android如何使用WebView访问https的网站
- Android如何使用WebView访问https的网站
- Android访问网站URL的资源以及有关WebView开发
- android 腾讯微博分享功能实现及自定义webview认证
- Android如何使用WebView访问https的网站
- Android如何使用WebView访问https的网站
- android 腾讯微博分享功能实现及自定义webview认证
- Android 使用WebView访问https的url——处理SslError
- android WebView 网页控件 访问因特网 url
- Android WebView 访问https显示空白页
- android,webview增加自定义JS对象,调用过程追踪。
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- android 动态添加自定义TextView
- [Android实例] 关于webview如何自动登录保存登录信息
- android webview 自定义404错误页面!
- 使用HttpWebRequest访问需要登录的网站-另一种途径
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- android WebView访问本地页面swf交互JS权限 #2060错误
- Android 中访问网页 webView