안드로이드 webview에서 팝업창 및 팝업창 닫기 > 자료실

자료실

자료실

안드로이드 webview에서 팝업창 및 팝업창 닫기

페이지 정보

profile_image
작성자 최고관리자
댓글 1 조회 984회 작성일 23-03-09 14:33
작성일 23-03-09 14:33

본문

    private class mWebChromeClient extends WebChromeClient {


        @Override

        public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, android.os.Message resultMsg) {

            view.removeAllViews();

            WebView childView = new WebView(view.getContext());

            childView.getSettings().setJavaScriptEnabled(true);

            childView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

            childView.getSettings().setSupportMultipleWindows(true);


            childView.setWebChromeClient(this);

            childView.setWebViewClient(new WebViewClient() {

                //@Override

                public void onCloseWindow(WebView window) {

                    window.destroy();

                }

            });

            childView.setLayoutParams(

                    new LinearLayout.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT)

            );

            view.addView(childView);

            WebView.WebViewTransport transport = (WebView.WebViewTransport)resultMsg.obj;

            transport.setWebView(childView);

            resultMsg.sendToTarget();

            return true;

        }


        @Override

        public void onCloseWindow(WebView window) {

            Log.i(getClass().getName(), "onCloseWindow");

            window.setVisibility(View.GONE);

            window.destroy();

            //mWebViewSub=null;

            super.onCloseWindow(window);

        }


        @Override

        public boolean onJsAlert(WebView view, String overrideUrl, String message, final JsResult result) {

            new AlertDialog.Builder(view.getContext())

                    .setTitle("Alert")

                    .setMessage(message)

                    .setPositiveButton(android.R.string.ok,

                            new AlertDialog.OnClickListener(){

                                public void onClick(DialogInterface dialog, int which) {

                                    result.confirm();

                                }

                            })

                    .setCancelable(false)

                    .create()

                    .show();

            return true;

        }


웹에서 window.open 호출시 opt항목을 없애주는게 편함

		var opt = 'left=100,top=100,width=600,height=600,scrollbars=1';

		if(g5_cma_is_hybrid) { opt = ''; }

	    var win_board_singo_win = window.open(url, 'cma_win_board_singo', opt);

		win_board_singo_win.focus();

		if(g5_cma_is_hybrid) { $("html, body").animate({scrollTop:0}, '500'); }



 

추천 0 비추천 0
profile_image

총모아 님의 댓글

총모아 작성일

좋아요


  • 회사 :
  • 대표 :
  • 주소 :
  • 메일 : admin@mysample.com
  • 사업자 등록번호 :
Copyright © cginjs.com All rights reserved.
notice