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

웹뷰 window.open 을 외부 브라우저가 아닌 앱 내부의 새 webView에서 보여주고 싶습니다.

0 추천

window.open으로 되어있는 팝업 내용을 띄워주고 싶은데(뒤에선 부모창이 저장되어 있어야 합니다)

 

		mWebView.setWebChromeClient(new WebChromeClient(){
			@Override
			public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, android.os.Message resultMsg) {
				WebView newWebView = new WebView(MainActivity.this);				
				newWebView.setWebChromeClient(new WebChromeClient() {
					@Override
					public void onCloseWindow(WebView window) {
						window.setVisibility(View.GONE);
						mWebView.removeView(window);
					}
				});
				mWebView.addView(newWebView);
				WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
				transport.setWebView(newWebView);
				resultMsg.sendToTarget();
				
				return true;
			};			
		});

이렇게 처리를 했더니 외부 브라우저가 켜져버리네요. 아무리 찾아봐도 어플 내부에서 처리할수 있는 방법을 알수가 없습니다. 고수님들 제발 도움좀 부탁드립니다 ㅠㅠ

달부 님이 2016년 9월 21일 질문
익스나 크롬의 탭처럼 보여주고 싶다는 말씀이신가요?

그건 이미 웹뷰가 아니라 웹브라우저 레벨이라 완전 다른 얘기가 아닐까 싶습니다.
아뇨 탭처럼 될 필요는 없고 부모창이 있던 웹뷰를 숨기고 같은자리에 새로운 웹뷰를 생성해 자식창을 띄웠다가 뒤로가기 버튼을 누르면 다시 부모창이 뜨게 하고 싶습니다... 이렇게 하려는 이유가 그냥 링크로 되어있다가 뒤로가기를 하면 부모창의 ajax로 불러온 부분들이 다 날아가버려서 부모창 상태를 유지하면서 새창을 띄우고 싶은데 도저히 깔끔하게 되지가 않네요

1개의 답변

0 추천
자식웹뷰를 띄울 엑티비티를 하나더 만드시고 그쪽으로 인텐트 시켜서 띄우시면 해결가능할듯합니다
익명사용자 님이 2016년 9월 26일 답변
...