이번에 입사한 회사에서 쇼핑몰을 만들면서 결제모듈로 올앳페이를 이용하고 있는데 PC에서는 결제하기 버튼을 누르면 정상적으로 결제창이 오픈되지만
스마트폰에 설치되어 있는 크롬 어플 뿐만 아니라 직접 웹뷰를 만들어봤는데도 결제창이 뜨질 않네요
아래는 제가 적용해본 코드입니다. 부족한 부분이 있다면 알려주시면 감사하겠습니다.
참고로 메뉴얼을 보긴 했지만 결제 프로세스에 대한 설명만 있고 모바일과 관련된 정보는 찾질 못했습니다. ㅠㅠ
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setLoadsImagesAutomatically(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
mWebView.getSettings().setAppCacheEnabled(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
if (Build.VERSION.SDK_INT >= 19) {
mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mWebView.getSettings().setEnableSmoothTransition(true);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
WebView newWebView = new WebView(view.getContext());
WebSettings webSettings = newWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addView(newWebView);
WebView.WebViewTransport transport = (WebView.WebViewTransport)resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
return true;
}
@Override
public void onCloseWindow(WebView window) {
super.onCloseWindow(window);
mWebView.removeView(window);
}
});