This commit is contained in:
Horis
2023-05-04 21:58:14 +08:00
parent 72f7fa0873
commit ef8f9df9b3
4 changed files with 58 additions and 0 deletions
@@ -1,10 +1,12 @@
package io.legado.app.help.http package io.legado.app.help.http
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.net.http.SslError
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.util.AndroidRuntimeException import android.util.AndroidRuntimeException
import android.webkit.CookieManager import android.webkit.CookieManager
import android.webkit.SslErrorHandler
import android.webkit.WebSettings import android.webkit.WebSettings
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient import android.webkit.WebViewClient
@@ -135,6 +137,15 @@ class BackstageWebView(
mHandler.postDelayed(runnable, 1000) mHandler.postDelayed(runnable, 1000)
} }
@SuppressLint("WebViewClientOnReceivedSslError")
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
handler?.proceed()
}
} }
private inner class EvalJsRunnable( private inner class EvalJsRunnable(
@@ -197,6 +208,15 @@ class BackstageWebView(
} }
} }
@SuppressLint("WebViewClientOnReceivedSslError")
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
handler?.proceed()
}
} }
private class LoadJsRunnable( private class LoadJsRunnable(
@@ -3,6 +3,7 @@ package io.legado.app.ui.browser
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.net.Uri import android.net.Uri
import android.net.http.SslError
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent import android.view.KeyEvent
import android.view.Menu import android.view.Menu
@@ -247,12 +248,14 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
"http", "https" -> { "http", "https" -> {
return false return false
} }
"legado", "yuedu" -> { "legado", "yuedu" -> {
startActivity<OnLineImportActivity> { startActivity<OnLineImportActivity> {
data = url data = url
} }
return true return true
} }
else -> { else -> {
binding.root.longSnackbar("跳转其它应用", "确认") { binding.root.longSnackbar("跳转其它应用", "确认") {
openUrl(url) openUrl(url)
@@ -262,6 +265,15 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
} }
} }
@SuppressLint("WebViewClientOnReceivedSslError")
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
handler?.proceed()
}
} }
} }
@@ -2,6 +2,7 @@ package io.legado.app.ui.login
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Bitmap import android.graphics.Bitmap
import android.net.http.SslError
import android.os.Bundle import android.os.Bundle
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@@ -85,6 +86,15 @@ class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) {
} }
super.onPageFinished(view, url) super.onPageFinished(view, url)
} }
@SuppressLint("WebViewClientOnReceivedSslError")
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
handler?.proceed()
}
} }
binding.webView.webChromeClient = object : WebChromeClient() { binding.webView.webChromeClient = object : WebChromeClient() {
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.content.res.Configuration import android.content.res.Configuration
import android.net.Uri import android.net.Uri
import android.net.http.SslError
import android.os.Bundle import android.os.Bundle
import android.view.* import android.view.*
import android.webkit.* import android.webkit.*
@@ -66,6 +67,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN) window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN)
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
} }
Configuration.ORIENTATION_PORTRAIT -> { Configuration.ORIENTATION_PORTRAIT -> {
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN) window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN)
@@ -95,6 +97,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
R.id.menu_rss_refresh -> viewModel.refresh { R.id.menu_rss_refresh -> viewModel.refresh {
binding.webView.reload() binding.webView.reload()
} }
R.id.menu_rss_star -> viewModel.favorite() R.id.menu_rss_star -> viewModel.favorite()
R.id.menu_share_it -> { R.id.menu_share_it -> {
binding.webView.url?.let { binding.webView.url?.let {
@@ -103,11 +106,13 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
share(it.link) share(it.link)
} ?: toastOnUi(R.string.null_url) } ?: toastOnUi(R.string.null_url)
} }
R.id.menu_aloud -> readAloud() R.id.menu_aloud -> readAloud()
R.id.menu_login -> startActivity<SourceLoginActivity> { R.id.menu_login -> startActivity<SourceLoginActivity> {
putExtra("type", "rssSource") putExtra("type", "rssSource")
putExtra("key", viewModel.rssSource?.loginUrl) putExtra("key", viewModel.rssSource?.loginUrl)
} }
R.id.menu_browser_open -> binding.webView.url?.let { R.id.menu_browser_open -> binding.webView.url?.let {
openUrl(it) openUrl(it)
} ?: toastOnUi("url null") } ?: toastOnUi("url null")
@@ -397,12 +402,14 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
"http", "https", "jsbridge" -> { "http", "https", "jsbridge" -> {
return false return false
} }
"legado", "yuedu" -> { "legado", "yuedu" -> {
startActivity<OnLineImportActivity> { startActivity<OnLineImportActivity> {
data = url data = url
} }
return true return true
} }
else -> { else -> {
binding.root.longSnackbar(R.string.jump_to_another_app, R.string.confirm) { binding.root.longSnackbar(R.string.jump_to_another_app, R.string.confirm) {
openUrl(url) openUrl(url)
@@ -412,6 +419,15 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
} }
} }
@SuppressLint("WebViewClientOnReceivedSslError")
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
handler?.proceed()
}
} }
} }