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

자료실

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

페이지 정보

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

본문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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항목을 없애주는게 편함

1
2
3
4
5
6
7
8
9
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

총모아 님의 댓글

총모아 작성일

좋아요


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