마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

웹뷰(webview)에서 페이스북으로 게시글 공유 한 후 페이스북이 자동으로 안꺼지구 하얀화면이나와요

0 추천

 웹뷰에서 게시글을 페이스북으로 공유를 하면 창이자동으로 안닫혀요

하얀화면으로 되있구 안드로이드스튜디오 로그에는

Scripts may close only the windows that were opened by it 이렇게 나오구요

어플말구 그냥 모바일일 경우 공유 후 바로 페이스북 사이트가 자동으로 닫힙니다.

webView.getSettings().setSupportMultipleWindows(false);
이렇게 추가해줬구요 저거 true로 바꾸면 인터넷으로 새창이 열리는데 안닫히는건 마찬가지에요 ㅠㅠ
익명사용자 님이 2016년 7월 28일 질문

2개의 답변

0 추천
창을닫을때 값을 부모한테 넘겨야되는데 못넘겨줘서 그럴겁니다

 

WebChromeClient 상속받으셔서 onCreateWindow,onCloseWindow 메소드로 따로 구현하셔야될겁니다.
sadeva (21,550 포인트) 님이 2016년 7월 28일 답변
onCreateWindow는 setSupportMultipleWindows(true);로 설정해야 진입하는걸로 알고있는데요~ 이걸 true로 해도 창을닫을때 값을 못받는것같아요ㅠㅠ
안드로이드에서는 window.close를 못받아서 그렇다는 사람들도있던데

  webView.setWebChromeClient(new WebChromeClient()
        {
            @Override
            public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, android.os.Message resultMsg){
                WebView newWebView = new WebView(view.getContext());
                webViewContainer.addView(newWebView);
                WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
                transport.setWebView(newWebView);
                resultMsg.sendToTarget();
                Log.d("a:","onCreateWindow");
                return true;

            }
            @Override
            public void onCloseWindow(WebView window) {
                super.onCloseWindow(window);

                webViewContainer.removeView(window);    // 화면에서 제거
                return;
            }
일단 이렇게구현했는데 안되네요
ArrayList<WebView> childViews; 이런식으로 자식뷰를 생성해주셔서 window.close할때 자식뷰도 같이 close 해줘야됩니다.
0 추천
잘해결하셨나요?ㅠ 저도 같은문제인데..

 

이해가 안가서 이렇게 댓글을 남깁니다ㅠㅠ
익명사용자 님이 2017년 1월 19일 답변
저는 페이스북 완료 url로 넘어가면 cangoback 2번 해서 해결했습니다~
...