最近项目几个页面要复用微信程序的网页。但是需要调用微网站登录接口,返回Cookies,webview访问需要的网页的时候携带。

并且还需要几个其他的动态改变的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 = ;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的更多相关文章

  1. Android WebView访问SSL证书网页(onReceivedSslError)

    Android WebView访问https SSL证书网页,如淘宝,需要在onReceivedSslError添加SSL支持 webview.setWebViewClient(new WebView ...

  2. Asp.Net MVC3.0网站统计登录认证的在线人数

    Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说,统计在线人数是一个很重要的工作.平时也发现很多的网站论坛等都有在线人数的显示.对于一个网站如果在线人数很多,用户看到了这 ...

  3. android webview 访问 https 页面

    在android 中利用webview 控件进行开发过程中,可能会遇到 webview 访问不了https://的页面如 https://www.google.com.hk 重写onReceivedS ...

  4. android webview 访问https页面 SslError 处理

    在Android中,WebView可以用来加载http和https网页到本地应用的控件.但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www ...

  5. Nginx对某个目录或整个网站进行登录认证的方法

    比如要对 网站目录下的 test 文件夹 进行加密认证 首先需要在opt 的主目录中 /opt/ 创建一个新文件 htpasswd此文件的书写格式是用户名:密码每行一个账户并且 密码必须使用函数 cr ...

  6. Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决

    Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ...

  7. 通过cookies跳过验证码登陆页面,直接访问网站的其它URL

    我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL”   转 ...

  8. python 携带cookie访问网站(python接口测试post)

    最近在使用自己研究性能测试工具的时候想到,使用python向服务器不断发送数据以作为并发测试.大概情况如下: #coding=utf-8 import urllib2 import urllib im ...

  9. 轻型目录访问协议 ldap 公司内部网站的登录 单点登录

    https://zh.wikipedia.org/wiki/轻型目录访问协议 轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛ ...

随机推荐

  1. 应用六:Vue之父子组件间的三种通信方式

    (注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 组件是Vue的核心功能之一,也是我们在开发过程中经常要用到的.各个独立的组件之间如何进行数据 ...

  2. Java的编译与运行

    编译: 是指将我们编写的Java源文件翻译成JVM认识的 .class 文件, 在这个过程中,javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功. 运行: ...

  3. IOS - Display a base64 image within a UIImageView: 显示一个base64的图片

    base64字符串(base64String)-存的是image数据NSData* data = [[NSData alloc] initWithBase64EncodedString:base64S ...

  4. Project Euler 16 Power digit sum( 大数乘法 )

    题意: 215 = 32768,而32768的各位数字之和是 3 + 2 + 7 + 6 + 8 = 26. 21000的各位数字之和是多少? 思路:大数乘法,计算 210 × 100 可加速计算,每 ...

  5. jquery 去重

    var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010); $.unique(yearArray); alert(yearArray) ...

  6. 小学生都能学会的python(一)2018.9.3

    一,小学生第一天 1,认识和了解python python的创始⼈为吉多·范罗苏姆(Guido van Rossum). python是一门解释性语言  弱类型语言 优点:(1).Python的定位是 ...

  7. hdu 1702 栈和队列的简单应用

    #include<stdio.h> #include<string.h> #include<queue> #include<stack> using n ...

  8. N - 畅通工程再续

    N - 畅通工程再续 思路:zz #include<cmath> #include<cstdio> #include<cstring> #include<io ...

  9. cogs 1164. 跑步

    1164. 跑步 ★   输入文件:runa.in   输出文件:runa.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 路人甲准备跑N (5≤N≤500)圈来锻炼自 ...

  10. Spring自带字符编码过滤器

    http://blog.csdn.net/youngage/article/details/51356821 http://blog.csdn.net/daelly/article/details/5 ...