이번에 하이브리드 앱을 개발 하고 있는데요 .
PC에서 PG사 결제 처리 과정을 보니 PC에서는 팝업이 생성되면서 진행되길래..
웹뷰에서팝업이 실행되게끔 WebChromeClient를 상속받은 클래스에서 onCreateWindow를 구현해줬고,
추가로
webView.getSettings().setJavascriptCanOpenWindowsAutomatically(true) , webView.getSettings().setSupportMultipleWindows(true)를 설정해 주었습니다.
그런 다음 onCreatewindow에서 새로 웹뷰를 다시 만들어야 한다고 알고 있습니다.
하지만 위와 같은 방식으로 구현을 하고 나면 결제 버튼을 눌러도 새 창이 띄워주지도 않고 진행이 안되는데요.
혹시 몰라 webView.getSettings().setJavascriptCanOpenWindowsAutomatically(true) , webView.getSettings().setSupportMultipleWindows(true)를 주석처리 하니 정상적으로 결제화면이 나오더군요
문제는 새 웹뷰가 생성되는게 아니라 기존 웹뷰에서 진행이 되고 있습니다. (당연한거긴 한데 ㅠㅠ)
그리고 제가 본 블로그 자료들에 의하면 대부분 결제 처리 할 때 shoudOverrideUrlLoading 에서 아래와 같은 방식으로 url을 구분하여 Intent로 처리한다고 알고 있는데
if(!url.startWith("http://") && !url.startsWith("https://") && !url.startsWith("javfascript:")){
}
하지만 저희는 결제 버튼을 누른후 url을 확인하면 https:를 포함되어 있더군요 .. 저희가 만든 쇼핑몰 결제 프로세스가 특이한건지 PG사 메뉴얼에 이렇게 하라고 있는지는 확인을 해봐야 알겠지만
webview에서 결제 기능 때문에 window.open 기능을 사용 못하게 처리하는게 맞는건가요?