package com.xw.yunwei.ui.user.mine.protocol
|
|
import android.annotation.SuppressLint
|
import android.webkit.WebSettings
|
import android.webkit.WebView
|
import com.google.android.material.tabs.TabLayout
|
import com.xw.common.base.BaseActivity
|
import com.xw.yunwei.BR
|
import com.xw.yunwei.databinding.ActivityProtocolBinding
|
|
class ProtocolActivity: BaseActivity<ActivityProtocolBinding, ProtocolVM>() {
|
override fun getBindingVariable() = BR.viewModel
|
|
override fun init() {
|
super.init()
|
initWeb(binding.web)
|
binding.back.setOnClickListener { onBackPressedHandel() }
|
// val tab1 = binding.tabLayout.newTab().apply { text = "小鹏Robotaxi自动驾驶出行运维隐私政策" }
|
val tab1 = binding.tabLayout.newTab().apply { text = "小鹏Robotaxi...隐私政策" }
|
val tab2 = binding.tabLayout.newTab().apply { text = "第三方共享信息清单" }
|
val tab3 = binding.tabLayout.newTab().apply { text = "个人信息收集清单" }
|
val tab4 = binding.tabLayout.newTab().apply { text = "权限调用" }
|
|
binding.tabLayout.addTab(tab1, true)
|
binding.tabLayout.addTab(tab2, false)
|
binding.tabLayout.addTab(tab3, false)
|
binding.tabLayout.addTab(tab4, false)
|
|
val getProtocol: (Int) -> Unit = { type ->
|
viewModel.getProtocol(type) {
|
setContent(binding.web, it)
|
}
|
}
|
getProtocol(8)
|
|
binding.tabLayout.addOnTabSelectedListener(object :
|
TabLayout.OnTabSelectedListener {
|
override fun onTabSelected(tab: TabLayout.Tab?) {
|
tab?.let {
|
when (it.text) {
|
"用户协议" -> getProtocol(1)
|
"隐私条款" -> getProtocol(2)
|
"小鹏Robotaxi...隐私政策" -> getProtocol(8)
|
"第三方共享信息清单" -> getProtocol(9)
|
"个人信息收集清单" -> getProtocol(10)
|
"权限调用" -> getProtocol(11)
|
else -> {}
|
}
|
}
|
}
|
override fun onTabUnselected(tab: TabLayout.Tab?) {}
|
override fun onTabReselected(tab: TabLayout.Tab?) {}
|
})
|
|
}
|
|
@SuppressLint("SetJavaScriptEnabled")
|
private fun initWeb(webView: WebView) {
|
//声明WebSettings子类
|
val webSettings = webView.settings
|
webSettings.domStorageEnabled = true //设置适应Html5
|
|
//如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
|
webSettings.javaScriptEnabled = true //允许js调用
|
webSettings.allowFileAccess = true //在File域下,能够执行任意的JavaScript代码,同源策略跨域访问能够对私有目录文件进行访问等
|
webSettings.allowContentAccess = true //是否允许在WebView中访问内容URL(Content Url),默认允许
|
|
//缩放操作
|
webSettings.setSupportZoom(true) //支持缩放,默认为true。是下面那个的前提。
|
webSettings.builtInZoomControls = true //设置内置的缩放控件。若为false,则该WebView不可缩放
|
webSettings.displayZoomControls = false //隐藏原生的缩放控件
|
|
//其他细节操作
|
webSettings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存
|
webSettings.allowFileAccess = true //设置可以访问文件
|
webSettings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
|
webSettings.loadsImagesAutomatically = true //支持自动加载图片
|
webSettings.defaultTextEncodingName = "utf-8" //设置编码格式
|
}
|
|
@SuppressLint("SetJavaScriptEnabled")
|
private fun setContent(webView: WebView, content: String?) {
|
content?.let {
|
// 加载并显示HTML代码
|
webView.loadDataWithBaseURL(
|
null,
|
content,
|
"text/html",
|
"utf-8",
|
null
|
)
|
}
|
}
|
}
|