我正在尝试加载网络(例如www.google.com),但网络视图会将下一条消息传递到控制台:
与http://google.com/上的资源相关联的cookie被设置为
SameSite=None
,但没有Secure
。 Chrome的未来版本 仅在标记了SameSite=None
的cookie时才投放Secure
。您可以在开发人员工具下查看Cookie 应用程序>存储> Cookies,并在以下位置查看更多详细信息 https://www.chromestatus.com/feature/5633521622188032。”,来源: https://www.google.com/
我不知道如何解决此问题。我正在执行下一个代码来加载网址,该如何解决?
private void initWebView(String url){
webViewTvWeakReference = new WeakReference<>(new WebView(getActivity()));
webViewTvWeakReference.get().setId(TV_WEB_VIEW_ID);
webViewTvWeakReference.get().setLayerType(View.LAYER_TYPE_HARDWARE, new Paint());
webViewTvWeakReference.get().setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
webViewTvWeakReference.get().setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.lightBlueBackgroundColor));
webViewTvWeakReference.get().requestFocusFromTouch();
setUpWebSettings(webViewTvWeakReference.get());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().removeAllCookies(null);
}
Map<String, String> headers = new HashMap<>();
headers.put("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
if (BuildConfig.DEBUG) {
webViewTvWeakReference.get().setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
});
}
if(!url.isEmpty()){
webViewTvWeakReference.get().loadUrl(url, headers);
}else{
webViewTvWeakReference.get().loadUrl("about:blank", headers);
}
webViewTvWeakReference.get().pauseTimers(); // WebView timers consumes a lot off CPU
webViewTvWeakReference.get().resumeTimers(); // Pause and Resume timers fix this behaivour
}
我已将下一行添加到标题中,但仍然无法正常工作。
headers.put("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
谢谢
答案 0 :(得分:1)
此警告专门针对google.com
中的cookie,因此您不负责设置其属性。 Google的团队需要将相关属性应用于其Cookie,才能解决此警告。
如果您确实有任何Cookie需要在跨站点/第三方上下文中发送,则需要使用以下命令进行设置:
Set-Cookie: foo=bar; SameSite=None; Secure
但是,在此阶段,此警告应仅是提供信息。 Cookie仍与请求一起发送,您应该不会在WebView中看到网站行为的任何问题。
这些新限制将成为Chrome 80中的默认限制,但是暂时不适用于WebView。
您可以在https://web.dev/samesite-cookies-explained上了解有关这些即将进行的更改的更多信息。
此外,您可以通过将其指向https://samesite-sandbox.glitch.me来检查您的特定浏览器或WebView是否正在实现新行为。如果该矩阵都是绿色,则您的浏览器 正在实施新的限制。如果面板上有红色或橙色,则说明您的浏览器还没有应用新的默认设置。