안드로이드 하이브리드 앱을 제작중입니다.
현재 웹뷰가 2개입니다.
일반 하이브리드 웹페이지를 보여주는 웹뷰와
이니시스 결제모듈 페이지를 보여주는 웹뷰가있습니다.
이니시스 결제페이지를 들어왔을때 뒤로가기버튼을 누르면 뒤로가게하고싶은데
지금 상태에서는 그냥 뒤로가기하면 일반 그 뒤에있는 웹페이지가 뒤로가기가 됩니다.
어떻게 따로따로 제어를 해야할가요??
@Override
public void onBackPressed() { //webView 뒤로가기버튼
long tempTime = System.currentTimeMillis();
long intervalTime = tempTime - backPressedTime;
if(mWebView.canGoBack()){
if(mWebView.getUrl().equals(MainURL+"loginMain.do")){
if (0 <= intervalTime && FINISH_INTERNAL_TIME >= intervalTime) finish();
else {
backPressedTime = tempTime;
Toast.makeText(getApplicationContext(), "한번 더 누르면 앱이 종료됩니다.", Toast.LENGTH_SHORT).show();
}
}
else if(mWebView.getUrl().equals(MainURL+"main.user")){
if (0 <= intervalTime && FINISH_INTERNAL_TIME >= intervalTime) finish();
else {
backPressedTime = tempTime;
Toast.makeText(getApplicationContext(), "한번 더 누르면 앱이 종료됩니다.", Toast.LENGTH_SHORT).show();
}
}
else if(mWebView.getUrl().equals(MainURL+"orderList.user")){
mWebView.loadUrl(MainURL+"main.user");
}
else {
mWebView.goBack();
}
}
else{
super.onBackPressed();
}
}
현재 이게 일반 페이지 보여주는 웹뷰 뒤로가기버튼이구요.
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
Log.d("팝업", "팝업");
// window.opener 시
mWebViewPop = new WebView(view.getContext());
mWebViewPop.getSettings().setJavaScriptEnabled(true);
mWebViewPop.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebViewPop.getSettings().setSupportMultipleWindows(true);
mWebViewPop.getSettings().setDomStorageEnabled(true);
mWebViewPop.setWebChromeClient(new WebChromeClient(){
@Override
public void onCloseWindow(WebView window) {
window.setVisibility(View.GONE);
mWebView.removeView(window);
}
});
mWebViewPop.setWebViewClient(new SslWebViewConnect());
mWebViewPop.setLayoutParams(new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT));
mContainer.addView(mWebViewPop);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(mWebViewPop);
resultMsg.sendToTarget();
return true;
}
이건 새로운 창을 보여주는 또다른 웹뷰를 생성하는 곳입니다.
이 새롭게 생성한곳을 뒤로가기 하고싶습니다.