From 1914bbffc2fec7b6f7ce6e6330cf3c5c08b2491f Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 21 Feb 2024 15:33:13 +0800 Subject: [PATCH] Set cookie for webview --- .../android/tv/ui/custom/CustomWebView.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index e6d050a4e..490914456 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -69,6 +69,7 @@ public class CustomWebView extends WebView { getSettings().setBuiltInZoomControls(true); getSettings().setDisplayZoomControls(false); getSettings().setLoadWithOverviewMode(true); + getSettings().setUserAgentString(Setting.getUa()); getSettings().setMediaPlaybackRequiresUserGesture(false); getSettings().setJavaScriptCanOpenWindowsAutomatically(false); getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); @@ -76,29 +77,29 @@ public class CustomWebView extends WebView { setWebViewClient(webViewClient()); } - private void setUserAgent(Map headers) { - if (headers.isEmpty()) { - getSettings().setUserAgentString(Setting.getUa()); - } else for (String key : headers.keySet()) { - if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) { - getSettings().setUserAgentString(headers.get(key)); - break; - } - } - } - public CustomWebView start(String key, String from, Map headers, String url, String click, ParseCallback callback, boolean detect) { App.post(timer, Constant.TIMEOUT_PARSE_WEB); this.callback = callback; - setUserAgent(headers); - loadUrl(url, headers); this.detect = detect; this.click = click; this.from = from; this.key = key; + start(url, headers); return this; } + private void start(String url, Map headers) { + checkHeader(url, headers); + loadUrl(url, headers); + } + + private void checkHeader(String url, Map headers) { + for (String key : headers.keySet()) { + if (key.equalsIgnoreCase(HttpHeaders.COOKIE)) CookieManager.getInstance().setCookie(url, headers.get(key)); + if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT)) getSettings().setUserAgentString(headers.get(key)); + } + } + private WebViewClient webViewClient() { return new WebViewClient() { @Override