From c389d43e7fb278db4ec24287e2e7c0b3eb5fb02c Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Wed, 4 May 2022 18:50:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui/browser):=E6=94=AF=E6=8C=81=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=BD=91=E9=A1=B5=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/ui/browser/WebViewActivity.kt | 6 ++++++ .../main/java/io/legado/app/ui/browser/WebViewModel.kt | 9 +++++++++ 2 files changed, 15 insertions(+) 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 e4532d566..e8c3c07bc 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 @@ -177,6 +177,7 @@ class WebViewActivity : VMBaseActivity() { override fun onDestroy() { super.onDestroy() binding.webView.destroy() + viewModel.saveVerificationResult() } inner class CustomWebChromeClient : WebChromeClient() { @@ -215,6 +216,11 @@ class WebViewActivity : VMBaseActivity() { return true } + override fun onLoadResource(view: WebView, resUrl: String) { + if (viewModel.sourceVerificationEnable) viewModel.html = resUrl + } + + override fun onPageFinished(view: WebView?, url: String?) { super.onPageFinished(view, url) val cookieManager = CookieManager.getInstance() diff --git a/app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt b/app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt index 16c813ef4..ab3335b6a 100644 --- a/app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/browser/WebViewModel.kt @@ -9,6 +9,7 @@ import androidx.documentfile.provider.DocumentFile import io.legado.app.base.BaseViewModel import io.legado.app.constant.AppConst import io.legado.app.exception.NoStackTraceException +import io.legado.app.help.CacheManager import io.legado.app.help.IntentData import io.legado.app.help.http.newCallResponseBody import io.legado.app.help.http.okHttpClient @@ -21,6 +22,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) { var baseUrl: String = "" var html: String? = null val headerMap: HashMap = hashMapOf() + var sourceVerificationEnable: Boolean = false fun initData( intent: Intent, @@ -29,6 +31,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) { execute { val url = intent.getStringExtra("url") ?: throw NoStackTraceException("url不能为空") + sourceVerificationEnable = intent.getBooleanExtra("sourceVerificationEnable") ?: false val headerMapF = IntentData.get>(url) val analyzeUrl = AnalyzeUrl(url, headerMapF = headerMapF) baseUrl = analyzeUrl.url @@ -78,5 +81,11 @@ class WebViewModel(application: Application) : BaseViewModel(application) { } } + fun saveVerificationResult() { + if (sourceVerificationEnable) { + val key = "${baseUrl}_verificationResult" + CacheManager.put(key, html!!) + } + } } \ No newline at end of file