本文主要是介绍Android WebView—设置cookie,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Android中WebView加载网页,有时候需要通过cookie向网页传递信息,如免登录保存登录状态等
设置cookie
在调用 loadUrl(url);
前一句调用以下synCookies()方法进行 Cookie 同步操作。
/*** 给WebView同步Cookie** @param context 上下文* @param url 可以使用[domain][host]*/
public void synCookies(Context context,Stirng url) {if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {CookieSyncManager.createInstance(context);}CookieManager cookieManager = CookieManager.getInstance();cookieManager.setAcceptCookie(true);// 允许接受 Cookieif (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {cookieManager.removeSessionCookie();// 移除} else {cookieManager.removeSessionCookies(null);// 移除}List<HttpCookie> cookies = UserModle.getInstance(this).getCookies();//获取本地保存的cookiefor (int i = 0; i < cookies.size(); i++) {HttpCookie cookie = cookies.get(i);String value = cookie.getName() + "=" + cookie.getValue();cookieManager.setCookie(url, value);}if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {CookieSyncManager.getInstance().sync();} else {cookieManager.flush();}
}
webview同步cookie位置
项目中使用 WebView 其实会自动将 Cookie 保存在本地数据库中。保存是路径为 data/data/package_name/app_WebView/Cookies
虽然不是 .db
结尾的,实际就是一个 .db
文件
注意:如果使用腾讯X5内核,CookieSyncManager、CookieManager等引用X5的类,如图
Android学习交流群:523487222
(如果您觉得有用,欢迎加入,一起学习进步)
点击链接加入群【Android学习群】
这篇关于Android WebView—设置cookie的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!