优化
This commit is contained in:
@@ -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()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user