fix:内置浏览器UA未设置
This commit is contained in:
@@ -15,6 +15,7 @@ import androidx.webkit.WebSettingsCompat
|
|||||||
import androidx.webkit.WebViewFeature
|
import androidx.webkit.WebViewFeature
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.base.VMBaseActivity
|
import io.legado.app.base.VMBaseActivity
|
||||||
|
import io.legado.app.constant.AppConst
|
||||||
import io.legado.app.databinding.ActivityWebViewBinding
|
import io.legado.app.databinding.ActivityWebViewBinding
|
||||||
import io.legado.app.help.config.AppConfig
|
import io.legado.app.help.config.AppConfig
|
||||||
import io.legado.app.help.http.CookieStore
|
import io.legado.app.help.http.CookieStore
|
||||||
@@ -44,10 +45,11 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
binding.titleBar.title = intent.getStringExtra("title") ?: getString(R.string.loading)
|
binding.titleBar.title = intent.getStringExtra("title") ?: getString(R.string.loading)
|
||||||
viewModel.initData(intent) {
|
viewModel.initData(intent) {
|
||||||
val url = viewModel.baseUrl
|
val url = viewModel.baseUrl
|
||||||
initWebView(url)
|
val headerMap = viewModel.headerMap
|
||||||
|
initWebView(url, headerMap)
|
||||||
val html = viewModel.html
|
val html = viewModel.html
|
||||||
if (html.isNullOrEmpty()) {
|
if (html.isNullOrEmpty()) {
|
||||||
binding.webView.loadUrl(url, viewModel.headerMap)
|
binding.webView.loadUrl(url, headerMap)
|
||||||
} else {
|
} else {
|
||||||
binding.webView.loadDataWithBaseURL(url, html, "text/html", "utf-8", url)
|
binding.webView.loadDataWithBaseURL(url, html, "text/html", "utf-8", url)
|
||||||
}
|
}
|
||||||
@@ -68,7 +70,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("JavascriptInterface")
|
@SuppressLint("JavascriptInterface")
|
||||||
private fun initWebView(url: String) {
|
private fun initWebView(url: String, headerMap: HashMap<String, String>) {
|
||||||
binding.webView.webChromeClient = CustomWebChromeClient()
|
binding.webView.webChromeClient = CustomWebChromeClient()
|
||||||
binding.webView.webViewClient = CustomWebViewClient()
|
binding.webView.webViewClient = CustomWebViewClient()
|
||||||
binding.webView.settings.apply {
|
binding.webView.settings.apply {
|
||||||
@@ -78,6 +80,9 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
useWideViewPort = true
|
useWideViewPort = true
|
||||||
loadWithOverviewMode = true
|
loadWithOverviewMode = true
|
||||||
javaScriptEnabled = true
|
javaScriptEnabled = true
|
||||||
|
headerMap[AppConst.UA_NAME]?.let {
|
||||||
|
userAgentString = it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val cookieManager = CookieManager.getInstance()
|
val cookieManager = CookieManager.getInstance()
|
||||||
cookieManager.setCookie(url, CookieStore.getCookie(url))
|
cookieManager.setCookie(url, CookieStore.getCookie(url))
|
||||||
|
|||||||
@@ -59,6 +59,9 @@ class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) {
|
|||||||
binding.webView.settings.apply {
|
binding.webView.settings.apply {
|
||||||
builtInZoomControls = true
|
builtInZoomControls = true
|
||||||
javaScriptEnabled = true
|
javaScriptEnabled = true
|
||||||
|
source.getHeaderMap()[AppConst.UA_NAME]?.let {
|
||||||
|
userAgentString = it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
val cookieManager = CookieManager.getInstance()
|
val cookieManager = CookieManager.getInstance()
|
||||||
source.loginUrl?.let {
|
source.loginUrl?.let {
|
||||||
|
|||||||
Reference in New Issue
Block a user