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

window.open 이 웹뷰에서 새창으로 뜨질 않습니다

0 추천
public void setWebViewSetting() {
  webView.setWebViewClient(new WebViewClient());
  webView.setWebChromeClient(new WebChromeClient() {
   @Override
      public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, android.os.Message resultMsg) {

              WebView newWebView = new WebView(MainActivity.this);
              view.addView(newWebView);
              WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
              transport.setWebView(newWebView);
              resultMsg.sendToTarget();

              newWebView.setWebViewClient(new WebViewClient() {
                  @Override
                  public boolean shouldOverrideUrlLoading(WebView view, String url) {
                      Intent browserIntent = new Intent(Intent.ACTION_VIEW);
                      browserIntent.setData(Uri.parse(url));
                      startActivity(browserIntent);
                      return true;
                  }
              });
          return true;
      };
      public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
      {
          new AlertDialog.Builder(MainActivity.this)
              .setTitle("AlertDialog")
              .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;
      };
  });

  WebSettings webSettings = webView.getSettings();
  webSettings.setJavaScriptEnabled(true);

  ///
  webSettings.setBuiltInZoomControls(true);
  webSettings.setSupportZoom(true);
  
  
  webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);
  webSettings.setSupportMultipleWindows(true);
  webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  webSettings.setBlockNetworkImage(false);
  webSettings.setLoadsImagesAutomatically(true);
  webSettings.setUseWideViewPort(true);
  webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

완전 초보입니다.

웹뷰에서 주소입력시 새창이 뜨는데 위와같이 소스를 적었더니 안드로이드내에서 뜨지 않고

인터넷으로 팝업창이 뜨네요

이걸 어플안에서 새창을 띄우는 방법이 없을까요?

어떻게 수정해야할지 도통 모르겠네요 ㅜㅜ

 

맨티스 (160 포인트) 님이 2015년 4월 5일 질문
맨티스님이 2015년 4월 5일 수정

1개의 답변

0 추천
              newWebView.setWebViewClient(new WebViewClient() {
                  @Override
                  public boolean shouldOverrideUrlLoading(WebView view, String url) {
                      Intent browserIntent = new Intent(Intent.ACTION_VIEW);
                      browserIntent.setData(Uri.parse(url));
                      startActivity(browserIntent);
                      return true;
                  }
              });
              .............
이부분을 밖으로 빼서 사용해 보셔요
nicehee (73,100 포인트) 님이 2015년 4월 5일 답변
답변 감사합니다 ^^. 사실 글을 올리자마자 해당부분은 삭제했습니다.
근데 역시 외부 팝업창으로 뜨네요 ㅜㅜ 주소를 입력하고 값을 부모페이지로 다시 받아와야 하는데 외부 팝업으로 뜨는게 문제가 해결이 안되네요 ㅜㅜ
...