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() { 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 ) } } }