From de027e9d31b093d5a25ddff4764fb72b5abd4b6a Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Wed, 13 Apr 2022 10:35:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=86=85=E7=BD=AE=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E6=9C=AA=E5=90=AF=E7=94=A8cookie=E5=92=8Cjs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/ui/browser/WebViewActivity.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt b/app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt index 2e4c1fade..bac99cedf 100644 --- a/app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt +++ b/app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt @@ -17,6 +17,7 @@ import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.databinding.ActivityWebViewBinding import io.legado.app.help.config.AppConfig +import io.legado.app.help.http.CookieStore import io.legado.app.lib.dialogs.SelectItem import io.legado.app.model.Download import io.legado.app.ui.association.OnLineImportActivity @@ -41,9 +42,9 @@ class WebViewActivity : VMBaseActivity() { override fun onActivityCreated(savedInstanceState: Bundle?) { binding.titleBar.title = intent.getStringExtra("title") ?: getString(R.string.loading) - initWebView() viewModel.initData(intent) { val url = viewModel.baseUrl + initWebView(url) val html = viewModel.html if (html.isNullOrEmpty()) { binding.webView.loadUrl(url, viewModel.headerMap) @@ -67,7 +68,7 @@ class WebViewActivity : VMBaseActivity() { } @SuppressLint("JavascriptInterface") - private fun initWebView() { + private fun initWebView(url: String) { binding.webView.webChromeClient = CustomWebChromeClient() binding.webView.webViewClient = CustomWebViewClient() binding.webView.settings.apply { @@ -76,7 +77,10 @@ class WebViewActivity : VMBaseActivity() { allowContentAccess = true useWideViewPort = true loadWithOverviewMode = true + javaScriptEnabled = true } + val cookieManager = CookieManager.getInstance() + cookieManager.setCookie(url, CookieStore.getCookie(url)) binding.webView.addJavascriptInterface(this, "app") upWebViewTheme() binding.webView.setOnLongClickListener { @@ -207,6 +211,10 @@ class WebViewActivity : VMBaseActivity() { override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) + val cookieManager = CookieManager.getInstance() + url?.let { + CookieStore.setCookie(it, cookieManager.getCookie(it)) + } view?.title?.let { title -> if (title != url && title != view.url && title.isNotBlank()) { binding.titleBar.title = title