package cn.sinata.xldutils.activity
|
|
import android.graphics.Bitmap
|
import android.os.Bundle
|
import android.text.TextUtils
|
import android.webkit.WebChromeClient
|
import android.webkit.WebView
|
import android.webkit.WebViewClient
|
import android.widget.TextView
|
import cn.sinata.xldutils.R
|
import cn.sinata.xldutils.visible
|
import org.jetbrains.anko.find
|
|
open class WebViewActivity : TitleActivity() {
|
|
private val webView by lazy {
|
find<WebView>(R.id.webView)
|
}
|
private val tv_show_forus by lazy {
|
find<TextView>(R.id.tv_show_forus)
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setContentView(R.layout.activity_web_view)
|
val t = intent.getStringExtra("title")
|
title = t
|
if (t == "关于我们")
|
tv_show_forus.visible()
|
initView()
|
}
|
|
private fun initView() {
|
val settings = webView.settings
|
settings.javaScriptEnabled = true
|
settings.javaScriptCanOpenWindowsAutomatically = true
|
settings.defaultTextEncodingName = "utf-8"
|
settings.domStorageEnabled = true
|
webView.webChromeClient = object : WebChromeClient() {
|
override fun onReceivedTitle(view: WebView, title: String?) {
|
super.onReceivedTitle(view, title)
|
if (resetTitle()) {
|
setTitle(title)
|
}
|
}
|
}
|
webView.webViewClient = object : WebViewClient() {
|
override fun onPageFinished(view: WebView, url: String?) {
|
super.onPageFinished(view, url)
|
dismissDialog()
|
}
|
|
override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {
|
super.onPageStarted(view, url, favicon)
|
showDialog()
|
}
|
|
override fun shouldOverrideUrlLoading(view: WebView, url: String?): Boolean {
|
if (!TextUtils.isEmpty(url)) {
|
webView.loadUrl(url)
|
}
|
return true
|
}
|
}
|
val type = intent.getIntExtra("type", 1)
|
val url = intent.getStringExtra("url")
|
if (type == 1) {
|
val sHead =
|
"<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
|
webView.loadDataWithBaseURL(null, sHead + url, "text/html", "utf-8", null)
|
} else {
|
webView.loadUrl(url)
|
}
|
}
|
|
protected open fun resetTitle() = false
|
override fun finishWhenCancelDialog(): Boolean = false
|
}
|