DetailsActivity.kt
2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.apaas.bigscreem
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.view.WindowInsets
import android.view.WindowInsetsController
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.fragment.app.FragmentActivity
/**
* Details activity class that loads [VideoDetailsFragment] class.
*/
class DetailsActivity : FragmentActivity() {
private var mSelectedMovie: Movie? = null
private val handler = Handler()
private lateinit var mWebView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_details)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false)
window.insetsController?.let {
it.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
it.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
} else {
@Suppress("DEPRECATION")
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
}
mSelectedMovie = intent.getSerializableExtra(MOVIE) as Movie
if (mSelectedMovie != null) {
mWebView = findViewById(R.id.webView)
// 启用JavaScript
mWebView.settings.javaScriptEnabled = true // 启用JavaScript
mWebView.settings.setUserAgentString("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36") // 设置用户代理为桌面浏览器的样子
mWebView.webViewClient = WebViewClient() // 处理点击链接的方式
// 设置WebChromeClient来处理JavaScript的对话框、网页标题等
mSelectedMovie!!.webUrl?.let { mWebView.loadUrl(it) }
}
val refreshInterval = 43200000L
// val refreshInterval = 5000L
// 使用Handler定时刷新WebView
handler.postDelayed(object : Runnable {
override fun run() {
mWebView.reload()
// 递归调用自身实现定时刷新
handler.postDelayed(this, refreshInterval)
}
}, refreshInterval)
}
companion object {
const val SHARED_ELEMENT_NAME = "hero"
const val MOVIE = "Movie"
}
override fun onDestroy() {
super.onDestroy()
// 清理资源,移除所有回调
handler.removeCallbacksAndMessages(null)
}
}