본문 바로가기
Android

<Kotlin 코틀린> 안드로이드 하이브리드 Alert창 처리하기

by 일용직 코딩노동자 2021. 11. 10.
728x90
반응형
본인웹뷰이름.webChromeClient = object : WebChromeClient(){
	override fun onJsAlert(view: WebView?, url: String?, message: String?, result: JsResult?): Boolean {
        	onJsAlert(message!!, result!!)
        	return true
        }

        override fun onJsConfirm(view: WebView?, url: String?, message: String?, result: JsResult?): Boolean {
        	onJsConfirm(message!!, result!!)
        	return true
    }
}

해당 코드를 오버라이드 하셔서 onCreate에 작성해주시면 되는데요.

 

fun onJsConfirm(message : String, result : JsResult) : Unit {
        var builder = AlertDialog.Builder(this@MainActivity)
        builder.setTitle("알 림")
        builder.setMessage(message)
        builder.setIcon(R.drawable.icon)

        // 버튼 클릭 이벤트
        var listener = DialogInterface.OnClickListener { _, clickEvent ->
            when (clickEvent) {
                DialogInterface.BUTTON_POSITIVE ->{
                    result!!.confirm()
                }

                DialogInterface.BUTTON_NEUTRAL -> {
                    result!!.cancel()
                }
            }
        }
        builder.setPositiveButton(android.R.string.ok, listener)
        builder.setNeutralButton(android.R.string.cancel, listener)
        builder.show()
    }

    fun onJsAlert(message : String, result : JsResult) : Unit{
        var builder = AlertDialog.Builder(this@MainActivity)
        builder.setTitle("알 림")
        builder.setMessage(message)
        builder.setIcon(R.drawable.icon)

        // 버튼 클릭 이벤트
        var listener = DialogInterface.OnClickListener { _, clickEvent ->
            when (clickEvent) {
                DialogInterface.BUTTON_POSITIVE ->{
                    result!!.confirm()
                }
            }
        }
        builder.setPositiveButton(android.R.string.ok, listener)
        builder.show()
    }

요렇게 밑에 함수까지 셋팅해주시면 코틀린에서 하이브리드 앱 Alert창 처리 하기 끝입니다!!

728x90
반응형

댓글