从Webview或URL中提取SameSite=Strict cookie的Android方法

11

我正在WebViewClient的onPageFinished()中使用以下代码来读取Cookie。但是有些Cookie被设置为“SameSite = Strict”,我无法使用下面的方法获取它们:

 @Override
 public void onPageFinished(WebView view, String url){
     String cookies = CookieManager.getInstance().getCookie(url);
     Log.d(TAG, "All the cookies in a string:" + cookies);
 }

有谁能告诉我如何获取设置为“SameSite=Strict”的cookie吗?


我已经提交了一些关于这个问题的错误报告:(1) https://bugs.chromium.org/p/chromium/issues/detail?id=780491&can=2&q=samesite&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified 和 (2) https://issuetracker.google.com/issues/68756461 - David Alan Hjelle
2个回答

6

1
这个问题已在WebView 72中解决。如果您没有收到SameSite Lax或Strict cookies,则需要将System WebView实现更新到任何版本>= 72。
David的帖子中有一个链接指向错误,并且我刚刚确认在从版本70更新到80后,CookieManager实例现在获取了所有cookie。

更新网页视图并不能解决问题。更新后的问题仍然存在。 - Libin Thomas
@LibinThomas 嗯嗯,很有趣。对我来说已经解决了。不过,我最终做的是创建一个登录屏幕,然后在从登录屏幕获取它们后,在 Web 视图之间共享 cookie。要求用户更新他们的 Web 视图是很笨拙的。https://github.com/hexag0d/BitChute_Mobile_Android_BottomNav/blob/FinalWebViewV/VideoDownloaderDonationUpdate/Web/Login.cs - hexagod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接