18034727885
2026-09-18 1328a7b0b90825b1fd63bca8f7675e52df8b151d
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
package com.igo.user.dialog
 
import android.os.Bundle
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.widget.TextView
import androidx.fragment.app.DialogFragment
import cn.sinata.xldutils.utils.screenWidth
import com.igo.user.R
import com.igo.user.interfaces.StringCallback
import org.jetbrains.anko.support.v4.find
import org.jetbrains.anko.wrapContent
 
class H5Dialog: DialogFragment() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
            inflater.inflate(R.layout.dialog_h5,container,false)
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NO_FRAME, cn.sinata.xldutils.R.style.FadeDialog)
    }
    private val tv_ok by lazy { find<TextView>(R.id.tv_ok) }
    private val tv_title by lazy { find<TextView>(R.id.tv_title) }
    private val sc_content by lazy { find<WebView>(R.id.sc_content) }
 
    private val content by lazy {
        requireArguments().getString("content")?:""
    }
    private var callback:StringCallback? = null
 
    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        dialog?.window?.setLayout((screenWidth()*0.85).toInt(), wrapContent)
        dialog?.window?.setGravity(Gravity.CENTER)
        dialog?.setCanceledOnTouchOutside(true)
    }
 
    fun setCallback(callback: StringCallback){
        this.callback = callback
    }
 
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        tv_title.text = arguments?.getString("title")
        val settings = sc_content.settings
        settings.javaScriptEnabled = true
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.defaultTextEncodingName = "utf-8"
        settings.domStorageEnabled = true
        sc_content.webChromeClient = object : WebChromeClient() {}
        sc_content.loadData(content,"text/html; charset=utf-8", "utf-8")
        tv_ok.setOnClickListener {
            callback?.onRlt("")
            dismiss()
        }
    }
}