package com.shsening.autouploadvideos
|
|
import android.content.Context
|
import android.util.AttributeSet
|
import android.webkit.CookieManager
|
import android.webkit.WebSettings
|
import android.webkit.WebView
|
|
class CustomWebView @JvmOverloads constructor(
|
context: Context,
|
attrs: AttributeSet? = null,
|
defStyle: Int = 0
|
) : WebView(context, attrs, defStyle) {
|
|
init {
|
settings.javaScriptEnabled = true
|
settings.userAgentString = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
|
settings.javaScriptEnabled = true
|
settings.domStorageEnabled = true
|
settings.databaseEnabled = true
|
settings.setSupportZoom(true)
|
settings.builtInZoomControls = true
|
settings.displayZoomControls = false
|
settings.allowFileAccess = true
|
settings.textZoom = 50 // Set zoom level to 30%
|
settings.useWideViewPort = true
|
settings.loadWithOverviewMode = true
|
settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.NORMAL
|
|
loadCookies()
|
}
|
|
override fun loadUrl(url: String) {
|
super.loadUrl(url)
|
saveCookies(url)
|
}
|
|
private fun saveCookies(url: String?) {
|
if (url != null) {
|
val cookieManager = CookieManager.getInstance()
|
val cookies = cookieManager.getCookie(url)
|
|
if (cookies != null) {
|
val sharedPreferences = context.getSharedPreferences("MyCookies", Context.MODE_PRIVATE)
|
// 保存 cookies,key 为 URL
|
sharedPreferences.edit().putString(url, cookies).apply()
|
}
|
}
|
}
|
|
private fun loadCookies() {
|
val sharedPreferences = context.getSharedPreferences("MyCookies", Context.MODE_PRIVATE)
|
val allEntries = sharedPreferences.all
|
|
val cookieManager = CookieManager.getInstance()
|
for ((url, cookies) in allEntries) {
|
if (cookies is String) {
|
cookieManager.setCookie(url, cookies)
|
}
|
}
|
}
|
}
|