【发布时间】:2020-03-04 04:33:45
【问题描述】:
我正在尝试加载网络(例如 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/
我不知道如何解决这个问题。我正在做下一个代码来加载一个 url,我该如何解决这个问题?
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");
谢谢
【问题讨论】:
标签: android cookies http-headers android-webview