`
zlping
  • 浏览: 63927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webview管理cookies在各版本中的区别

 
阅读更多

webview把cookies都保存在本地的数据库中,用CookieSyncManager类进行管理。设置cookies的方法是:CookieManager.setCookie(String url, String value)
执行下面代码:

 

CookieSyncManager.createInstance(context); 
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie("zlping.com", "userid=\"userid=33333333333\"");
cookieManager.setCookie("zlping.com", "ppu=1336455178105");
cookieManager.setCookie(".zlping.com", "userid=\"userid=33333333333\"");
cookieManager.setCookie(".zlping.com", "ppu=1336455178105");
CookieSyncManager.getInstance().sync();

 
在android2.3版本以下,数据保存在webview.db--cookies表中,表结构如下:

 

setCookie方法中URL参数必须是地址,如“zlping.com”,而不能是“.zlping.com”。否则就会如最后两条domain字段为空。android会自动把“zlping.com”做为域保存在domain中。当webview访问该域下面的网页是就会把前两条cookie带上。


而在3.0以后版本中,数据保存在webviewCookiesChromium.db--cookies表中,表结构如下



可以看出新表中没了domain字段,多出了host_key字段,如果按同样的方法保存cookies,webview访问“zlping.com”域下面的网页时只会把后面两条cookie带上,而不会带前两条cookie。


大家可能看出来了,android3.0以后把url直接保存在了host_key字段中,并当做域来用了。这就和以前的版本有冲突了。经本人实验,可以用以下方法解决:

 

 

cookieManager.setCookie("zlping.com", "userid=\"userid=33333333333\"; domain=zlping.com");
cookieManager.setCookie("zlping.com", "ppu=1336455178105; domain=zlping.com");

 

在value值中加入 domain=zlping.com,来手工设置cookies的域,这样就解决了版本冲突的问。保存在数据库中就是2.3以下版本的前两条,3.0版本的后两条

  • 大小: 28.8 KB
  • 大小: 44.6 KB
分享到:
评论

相关推荐

    Cookie 实现WebView自动登录

    本文将详细探讨Cookie与WebView的结合使用,以及如何在iOS中实现自动登录。 一、Cookie基础 Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,用于存储用户的状态信息,如登录状态、个性化设置等。当...

    Android中WebView使用

    在项目中,你可能还会遇到缓存、Cookies管理、自定义Header、注入JavaScript接口等问题。例如,设置缓存模式: ```java webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); ``` 通过`...

    flutter_webview_plugin,webview插件-允许flutr与本机webview通信。维护者:@charafau.zip

    6. **生命周期管理**:在Flutter应用的生命周期中,Webview的状态可以被正确管理。例如,当页面被导航离开时,Webview可以被暂停或销毁,节约系统资源。 7. **自定义Webview设置**:根据项目需求,开发者还可以...

    Android_WebView、Webkit内核深入讲解

    Android WebView 是 Android 平台上的一种基于 WebKit 内核的浏览器控件,可以用来在移动应用程序中显示网页内容。WebKit 是一个开源的浏览器网页排版引擎,包含 WebCore 排版引擎和 JSCore 引擎。下面是 Android ...

    Android WebView 新浪微博自动登陆

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中加载和显示网页内容。本教程将深入探讨如何使用WebView实现新浪微博的自动登录功能。这一功能对于提高用户体验,特别是那些需要频繁登录社交...

    android cookie获取和设置,webView的cookie的同步

    在 Android 开发中,Cookie 的管理和同步对于维护用户会话状态至关重要。特别是在使用 HttpClient 发起网络请求时,保持客户端与服务器端 Session 的一致性是非常重要的。此外,在 WebView 中进行 Cookie 的同步也是...

    android_中webView控件详解

    - **清理Cookies**:可以使用以下代码来清理WebView中的Cookies: ```java CookieSyncManager.createInstance(context); CookieSyncManager.getInstance().startSync(); CookieManager.getInstance()....

    webView的简单讲解

    WebView允许开发者在原生应用程序中嵌入网页内容,使得用户可以在不离开应用的情况下浏览网页,提供了一种混合应用开发的可能性。下面我们将深入探讨WebView的一些关键知识点。 ### 1. WebView的基本使用 WebView...

    【eoe Android特刊】第二十四期Android WebView

    2. **清除WebView cookies**:清除WebView的cookies对于某些应用场景是必要的,尤其是在涉及到用户隐私数据的应用中。 3. **使用cmwap无法联网解决办法**:在某些国家或地区的网络环境下,可能会遇到无法通过WebView...

    Android中WebView常见问题及解决方案汇总

    在Android应用开发中,WebView是不可或缺的一部分,它允许开发者在原生应用中嵌入网页内容,实现混合式应用开发。然而,使用WebView时会遇到一些常见的问题,以下是一些问题及其解决方案: 1. **自定义错误显示界面...

    Android WebView、Webkit内核深入讲解资料.docx

    在Android开发中,WebView是一个至关重要的组件,它允许应用程序嵌入网页浏览功能,极大地丰富了应用的内容展示。本文将深入探讨WebView背后的WebKit内核及其工作原理。 WebKit是一个开源的网页渲染引擎,由WebCore...

    swift-基于WKWebView控件上跨平台框架

    WKWebView是苹果在iOS 8及更高版本中引入的一个重要组件,它替代了旧有的UIWebView,为开发者提供了更强大、更安全的网页内容渲染能力。 首先,让我们深入理解WKWebView的核心优势。与UIWebView相比,WKWebView具有...

    一个简易的浏览器app

    Webview是一个能够加载和显示网页的原生控件,它允许开发者在应用程序中嵌入网页内容,提供类似于浏览器的浏览体验。下面将详细解释如何使用Webview构建一个简单的浏览器应用,以及相关的自定义功能。 1. **Webview...

    Android中webView加载H5绑定cookie实例

    下面我们来详细介绍如何在 Android 中使用 WebView 加载 H5 并绑定 Cookie。 为什么需要绑定 Cookie 在实现 H5 登陆注册和大赛报名等功能时,我们需要将 Cookie 传给服务器,以判断当前账户是否登陆成功。然而,...

    Android WebView 常见问题及处理方案

    在Android开发中,WebView是一个非常重要的组件,它允许我们在原生应用中展示和交互HTML内容。然而,由于WebView的功能限制和版本差异,开发者经常会遇到一些挑战。以下是一些常见的问题及其处理方案: 1. **自定义...

    C#基于WebBrowser获取cookie的实现方法

    在C#编程中,WebBrowser控件是一个强大的工具,它允许开发者在Windows应用程序中嵌入一个Web浏览器,以便用户能够浏览网页。同时,通过WebBrowser控件,开发者还可以与网页进行交互,例如获取cookie信息。本文将深入...

Global site tag (gtag.js) - Google Analytics