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