乐闻世界logo
搜索文章和话题

如何在android webview中启用 cookie ?

4 个月前提问
3 个月前修改
浏览次数36

1个答案

1

要在Android WebView中启用Cookie,您需要使用CookieManager类来管理您的WebView的Cookie。以下是开启Cookie支持的步骤:

  1. 获取CookieManager的实例。
  2. 通过setAcceptCookie方法启用或者禁用Cookie。

以下是一个简单的示例代码:

java
import android.webkit.CookieManager; import android.webkit.WebView; // 在WebView初始化的时候 WebView webView = new WebView(context); // 获取CookieManager的实例 CookieManager cookieManager = CookieManager.getInstance(); // 启用WebView的Cookie存储 cookieManager.setAcceptCookie(true); // 如果您使用的是Android Lollipop (API 21) 或更高版本,还可以这样启用第三方Cookie if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.setAcceptThirdPartyCookies(webView, true); } // 现在可以加载需要使用Cookie的URL了 webView.loadUrl("http://www.example.com");

在这个例子中,setAcceptCookie(true)方法启用了WebView的Cookie。如果您正在开发针对Android Lollipop(API 21)或更高版本的应用,还可以使用setAcceptThirdPartyCookies方法来决定是否接受第三方Cookie。

请注意,在实践中,您可能还需要处理Cookie的持久化问题。默认情况下,Cookie是存在RAM中的,应用退出后Cookie可能会丢失。如果需要持久化存储Cookie,可以使用CookieSyncManager在Android 4.4及以下版本中同步Cookie,或者在Android 4.4以上版本中使用flush方法来确保将内存中的Cookie同步到磁盘。

java
// 对于Android 4.4及以下版本,需要使用CookieSyncManager来同步Cookie CookieSyncManager.createInstance(context); CookieSyncManager.getInstance().sync(); // 在Android 4.4及以上版本,可以直接使用CookieManager的flush方法同步Cookie到磁盘 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.flush(); }

请注意,随着Android版本的不断迭代,这些API和实践可能会有所改变,因此在使用时请参考最新的官方文档。

2024年6月29日 12:07 回复

你的答案