我需要获取存储在 webview 中的所有 cookie。目前默认的网页视图。
https://developer.android.com/reference/android/webkit/CookieManager.html
目前只支持:
- 获取Cookie(字符串网址)
我需要能够在不知道确切域名的情况下获取所有 cookie。
感谢您的任何建议,D
我需要获取存储在 webview 中的所有 cookie。目前默认的网页视图。
https://developer.android.com/reference/android/webkit/CookieManager.html
目前只支持:
我需要能够在不知道确切域名的情况下获取所有 cookie。
感谢您的任何建议,D
在 Java 中,据我了解,您正在使用 webView 并且您想要获取特定预览 URL 的所有 cookie,您可以从 webView 客户端获取当前 URL 并将其作为参数传递给 getCookie()
String cookies = CookieManager.getInstance().getCookie(webView.getUrl());
作为最佳实践,您应该在这样的页面加载后尝试
WebView webView = findViewById(R.id.webview_id);
WebViewClient webViewClient = new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
String cookies = CookieManager.getInstance().getCookie(view.getUrl());
// save cookies or call new fun to handle actions
// newCookies(cookies);
}
};
webView.setWebViewClient(webViewClient);
//webView.loadUrl(/*what ever url you want to load */);
您可以创建自己的 cookie 存储并拦截 WebView 加载的 cookie。java.net.CookieManager
用作存储的示例:
val cookieManager = java.net.CookieManager()
webView.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
CookieManager.getInstance()
.getCookie(url)
?.let {
val uri = URI(url)
HttpCookie.parse(it).forEach {
cookieManager.cookieStore.add(uri, it)
}
}
}
}