마스터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();
 
               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);

안드로이드로 웹뷰 어플을 만지고 있는 왕초보 입니다.

사실 프로그래머는 아니고 회사에서 그나마 만질수 있는 사람이 없어서 제가 조금씩 수정을 해서 쓰는 수준입니다.

주소 입력하는 부분에서 팝업창이 뜨고 값을 입력하고 submit하면 부모페이지로 해당 값이 넘어와야 하는데

현재 위처럼 소스를 넣었더니 외부 팝업창으로 열립니다.

submit이후 창이 닫히지도 않고, 뒤로가기로 창을 닫아도 어플내에선 값을 입력받지 못하구요.

여기저기 뒤져서 소스를 입력하긴 했는데 더이상 진행은 무리인듯합니다.

고수님들의 도움을 간절히 부탁드립니다.

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

1개의 답변

0 추천
window.open 자체가 새창을 띄우는 명령어 아닌가요?

안드로이드 소스를 건드릴게 아니라 javascript 영역을 수정해야 할듯 한데요..

location.replace 라든지, location.href 등...
Gradler (109,780 포인트) 님이 2015년 4월 6일 답변
네.. 새창을 띄우는건 맞는데요
이게 어플 외부 팝업으로 실행이 되는게 문제에요
그래서 어플내에서 새창을 띄우는 방법을 여쭤본겁니다 ㅎ
...