在Android WebView中设置Cookie
来源:互联网 发布:淘宝流量入口 编辑:程序博客网 时间:2024/06/03 04:57
package com.test.myapplication;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.webkit.CookieManager;import android.webkit.CookieSyncManager;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import butterknife.Bind;import butterknife.ButterKnife;public class InfoActivity extends Activity { @Bind(R.id.web) WebView web; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.else_web_layout); ButterKnife.bind(this); configWebView(web, false); String url = "https://www.baidu.com/"; synCookies(this, url, "uid=11"); synCookies(this, url, "name=xyw"); synCookies(this, url, "agent=android"); synCookies(this, url, "age=20;sex=1;time=today"); web.loadUrl(url ); } /** * 设置Cookie * * @param context * @param url * @param cookie 格式:uid=21233 如需设置多个,需要多次调用 */ public void synCookies(Context context, String url, String cookie) { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setCookie(url, cookie);//cookies是在HttpClient中获得的cookie CookieSyncManager.getInstance().sync(); } /** * 清除Cookie * * @param context */ public static void removeCookie(Context context) { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); CookieSyncManager.getInstance().sync(); } protected void configWebView(WebView webView, boolean needCache) { if (!needCache) { webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); } webView.getSettings().setJavaScriptEnabled(true); //启用数据库 webView.getSettings().setDatabaseEnabled(true); //设置定位的数据库路径 String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); webView.getSettings().setGeolocationDatabasePath(dir); //启用地理定位 webView.getSettings().setGeolocationEnabled(true); //开启DomStorage缓存 webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setLoadsImagesAutomatically(true); webView.setWebViewClient(new WebViewClient(){}); webView.setWebChromeClient(new WebChromeClient()); }}
查看请求报文如下:设置cookie前
查看请求报文如下:设置cookie后,设置Cookie成功
最后需注意:如果需要设置多个Cookie,需要多次设置。不能synCookies(this, url, "age=20;sex=1;time=today");,这样只能设置第一个值age=20.
0 0
- 在Android WebView中设置Cookie
- 在Android的WebView中给一级域名设置cookie
- android中给WebView设置Cookie
- Android中设置Webview支持Cookie
- 【Android】WebView设置Cookie
- android webview 设置 Cookie
- Android WebView设置cookie
- android上WebView设置cookie,以及设置webview cookie在部分手机失效
- android上WebView设置cookie,以及设置webview cookie在部分手机失效
- android webview里设置cookie
- android webview里设置cookie
- android webview里设置cookie
- android webview里设置cookie
- webView中设置cookie无效
- Android WebView中Cookie的获取和设置
- android中Webview设置多个cookie参数
- Android 在webview中设置代理
- Android在webview上设置cookie,部分cookie失效的问题
- matlab 常见问题汇总
- js对象和json文件
- iOS实现指纹识别
- Thinkphp框架基础之使用sql语句
- 通过SecureCRT登录redis
- 在Android WebView中设置Cookie
- android BLE重复连接设备或者断开后马上连接新设备连接不上!
- Java Mysql数据库工具类代码
- ssh协议使用SecureCRT通过跳板机连接到第三台主机
- PHP遍历数组的方法汇总——foreach
- jvm 虚拟机详解
- OpenVPN 客户端For OSX
- 使用docker 1.12 搭建多主机docker swarm集群
- log4j+common-logging到slf4j+logback的日志移植方法