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
반응형
'Android' 카테고리의 다른 글
안드로이드 12 타겟팅 시 필수 메니페스트 설정 (0) | 2021.12.06 |
---|---|
<Kotlin 코틀린> 커스텀 다이얼로그 생성하기(아이폰 처럼 꾸며봤어요!) (0) | 2021.11.18 |
<Kotlin 코틀린> 안드로이드 WebView(웹뷰) window.open 새창 처리하기 (옆에 짤림 해결) (0) | 2021.11.10 |
Android 앱 캐시 및 데이터 내가 원하는것만 골라서 삭제해보자. (0) | 2021.08.20 |
android11 intent 패키지명으로 외부 앱 실행 시 안되는 현상 (0) | 2021.07.22 |
댓글