// =====================================
// main.java
// onCreate 에서 웹뷰 세팅
web1 = (WebView) findViewById(R.id.web1);
web2 = (WebView) findViewById(R.id.web2);
web1.getSettings().setJavaScriptEnabled(true);
web1.getSettings().setSupportMultipleWindows(true);
web1.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
web1.loadUrl("http://127.0.0.1/newwindow.html");
web1.setWebViewClient(new MyWebViewClient());
web1.setWebChromeClient(new MyWebChromeClient());
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onCreateWindow (WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
// 이미 생성된 두번째 WebView 에서 열기
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(web2);
resultMsg.sendToTarget();
return true;
}
}
// =====================================
// main.xml
// 웹뷰 2개 배치
<WebView
android:id="@+id/web1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<WebView
android:id="@+id/web2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
/>
안녕하세요.
인터넷에서 찾은 소스들을 암만 따라해봐도 제대로 안 되길레 고심끝에 질문을 남깁니다.
부디 도움을 주세요.
먼저 위 소스처럼 WebView 2개를 배치하고 1번 웹뷰에서 새창을 여는 간단한 테스트용 페이지를 열게 한 뒤에 앱을 실행합니다.
앱이 실행되면 테스트용 페이지가 뜨고 거기서 버튼을 누르면 2번 웹뷰에서 새창의 내용이 열리게끔 하려는데요.
인터넷을 뒤져본 결과 저런식으로 적용해주면 제 의도대로 돌아가야할 것 같은데....
제 폰(갤노트2)에서 테스트해보면 자꾸 [작업을 실행할때 사용할 애플리케이션] 창이 뜨면서 인터넷/크롬 브라우저 둘 중 하나를 선택하라고 뜨네요....-ㅅ-;;;
대체 뭐가 잘못된건지 모르겠사와요... 도와주십쇼!
혹시 API level 8 (Android2.2) 이 낮아서 그렇다거나,
이클립스 버전이 예전꺼라 그렇다거나 한건 뭐... 설마 상관없겠쥬?-_-;