WebView에서 <a> 태그의 target="_blank" 처리하기 > 기술자료 | 해피정닷컴

WebView에서 <a> 태그의 target="_blank" 처리하기 > 기술자료

본문 바로가기

사이트 내 전체검색

WebView에서 <a> 태그의 target="_blank" 처리하기 > 기술자료

Android WebView에서 <a> 태그의 target="_blank" 처리하기

페이지 정보


본문

다음과 같이 <A HREF="newwindow.html" TARGET="_blank"> 태그가 존재할 때
웹뷰에서 외부 브라우저로 해당 페이지를 보여주고 싶은 경우가 있다.

아래 방법은 검색 결과중 신뢰성 있다고 판단되는 것을 기록하는 것이며,
향후 테스트에 의해서 검증되면, 검증여부를 추가 기재하겠습니다.



[ 방법1. ]

shouldOverrideUrlLoading()을 사용하기 위해 mWebView.setWebViewClient(new WebViewClient()); 을 사용할 경우 자동으로 외부브라우저로 내용을 보여주지 않는다.

이 경우에는 다음과 같이 처리하면 된다.


WebSettings ws = mWebView.getSettings();
ws.setSupportMultipleWindows(true);

mWebView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // .... 내용 처리....
        return super.shouldOverrideUrlLoading(view, url);
    }
});

mWebView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) {
        Logger.d(TAG, "onCreateWindow ");

        WebView newWebView = new WebView(getContext());
        
        WebView.WebViewTransport transport = (WebView.WebViewTransport)resultMsg.obj;
        transport.setWebView(newWebView);
        resultMsg.sendToTarget();
        
        return true;
    }
});


우선 새창을 띄우기 위해서는 mWebView.getSettings().setSupportMultipleWindows(true)로 설정해 주어야 한다.

그리고 나서 새창으로 띄워야하는 경우가 발생하면 onCreateWindow()로 이벤트가 전달되는대
이때 새로운 WebView를 만들어서 거기서 처리하도록 하고 처리가 끝나면
새로 만들어진 WebView는 참조관계가 끊어져서 자동으로 메모리에서 사라지게끔 만든 것이다.

참고자료
https://lsit81.tistory.com/entry/Android-WebView에서-a-태그의-blank-target-처리하기
https://stackoverrun.com/ko/q/4957808

댓글목록

등록된 댓글이 없습니다.


Total 2,634건 11 페이지
  • RSS
기술자료 목록
2434
Apple   5996  2020-12-10 14:22 ~ 2020-12-17 00:27  
열람
Android   9691  2020-12-10 12:22 ~ 2020-12-17 00:27  
2432
그누보드   6472  2020-12-07 15:15 ~ 2022-12-17 21:15  
2431
SNS   6758  2020-11-30 14:39 ~ 2020-12-12 09:04  
2430
SNS   6112  2020-11-29 16:55 ~ 2020-12-18 19:53  
2429
SNS   10460  2020-11-25 14:04 ~ 2020-12-12 09:05  
2428
Apple   5630  2020-11-24 19:27 ~ 2020-11-24 19:34  
2427
SNS   6168  2020-11-23 03:38 ~ 2020-12-17 09:25  
2426
SNS   6487  2020-11-20 17:16 ~ 2020-11-23 03:07  
2425
SNS   8974  2020-11-19 12:20 ~ 2023-09-12 19:14  
2424
SNS   14901  2020-11-19 12:16 ~ 2020-12-18 19:00  
2423
SNS   6233  2020-11-18 20:15 ~ 2020-12-18 19:01  
2422
PHP   7274  2020-11-08 13:01 ~ 2020-11-08 13:03  
2421
PHP   8348  2020-11-06 20:08  
2420
SNS   8126  2020-11-05 14:21 ~ 2020-12-12 09:07  
2419
SNS   4852  2020-11-05 11:50 ~ 2020-11-23 03:24  
2418
SNS   6698  2020-11-03 19:16 ~ 2020-11-23 03:17  
2417
그누보드   4633  2020-10-19 06:39 ~ 2022-02-01 09:57  
2416
그누보드   4415  2020-10-16 17:08 ~ 2020-10-20 00:43  
2415
그누보드   4973  2020-10-14 12:34 ~ 2021-03-23 18:09  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.