@@ -26,10 +26,14 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
2626 companion object {
2727 private const val BOOTPAY = " https://inapp.bootpay.co.kr/2.0.6/production.html"
2828
29+ private const val CLOSE = - 3
30+
2931 private const val ERROR = - 2
3032
3133 private const val CANCEL = - 1
3234
35+ private const val READY = 0
36+
3337 private const val CONFIRM = 1
3438
3539 private const val DONE = 2
@@ -44,9 +48,11 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
4448 super .handleMessage(msg)
4549 val data = msg.obj.toString()
4650 when (msg.what) {
51+ CLOSE -> onCloseHandled(data)
4752 ERROR -> onErrorHandled(data)
4853 CANCEL -> onCancelHandled(data)
49- CONFIRM -> onConfirmeHandled(data)
54+ READY -> onReadyHandled(data)
55+ CONFIRM -> onConfirmHandled(data)
5056 DONE -> onDoneHandled(data)
5157 }
5258 }
@@ -99,7 +105,9 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
99105 ),
100106 error(),
101107 cancel(),
108+ ready(),
102109 confirm(),
110+ close(),
103111 done()
104112 )
105113 }
@@ -199,6 +207,10 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
199207
200208 private fun error () = " .error(function(data){Android.error(JSON.stringify(data));})"
201209
210+ private fun ready () = " .ready(function(data){Android.ready(JSON.stringify(data));})"
211+
212+ private fun close () = " .close(function(data){Android.close('close');})"
213+
202214 private fun confirm () = " .confirm(function(data){Android.confirm(JSON.stringify(data));})"
203215
204216 private fun cancel () = " .cancel(function(data){Android.cancel(JSON.stringify(data));})"
@@ -287,6 +299,15 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
287299 }
288300
289301 private inner class AndroidBridge : IScriptFuction {
302+ @JavascriptInterface
303+ override fun close (data : String ) {
304+ eventHandler.sendMessage(Message .obtain(eventHandler, CLOSE , data))
305+ }
306+
307+ @JavascriptInterface
308+ override fun ready (data : String ) {
309+ eventHandler.sendMessage(Message .obtain(eventHandler, READY , data))
310+ }
290311
291312 @JavascriptInterface
292313 override fun error (data : String ) {
@@ -309,23 +330,32 @@ internal class BootpayWebView @JvmOverloads constructor(context: Context, attrs:
309330 }
310331 }
311332
333+ private fun onCloseHandled (data : String ) {
334+ listener?.onClose(data)
335+ dialog?.dismiss()
336+ }
337+
312338 private fun onErrorHandled (data : String ) {
313339 listener?.onError(data)
314- dialog?.dismiss()
340+ // dialog?.dismiss()
315341 }
316342
317343 private fun onCancelHandled (data : String ) {
318344 listener?.onCancel(data)
319- dialog?.dismiss()
345+ // dialog?.dismiss()
346+ }
347+
348+ private fun onReadyHandled (data : String ) {
349+ listener?.onReady(data)
320350 }
321351
322- private fun onConfirmeHandled (data : String ) {
323- listener?.onConfirmed (data)
352+ private fun onConfirmHandled (data : String ) {
353+ listener?.onConfirm (data)
324354 }
325355
326356 private fun onDoneHandled (data : String ) {
327357 listener?.onDone(data)
328- dialog?.dismiss()
358+ // dialog?.dismiss()
329359 }
330360
331361 private inner class Client : WebChromeClient () {
0 commit comments