고똘이의 IT 개발이야기

[안드로이드 Webview(웹뷰) shouldOverrideUrlLoading() 메서드]



안녕하세요. 오늘은 안드로이드 ShouldOverrideUrlLoadion()메소드에 대해서 알아 보겠습니다.


ShouldOverrideUrlLoadion()메소드란 현재 페이지의 url을 읽어 올 수 있는 메서드 입니다. 이 메서드를 이용하여 새창을 읽을 수 도 있고 특정 페이지에서만 특수한 기능을 넣을수도 있는 android webview에서 아주 자주사용되는 메서드 입니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 안드로이드 6.0미만에서
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
 
    Uri uri = null// 현재 페이지 url
    uri = Uri.parse(url); // uri로 변경
 
    if(uri.getPath().contains("/test/page")){ // 현재 uri의 path에 컨테인만 읽기
        Intent intent = new Intent(MainActivity.this, TestActivity.class); // 새창을 여는 액티비티나, 팝업일때 이용하면 용이합니다.
        intent.putExtra("url",url.toString());
        startActivity(intent);
 
        return true;
    }
    return super.shouldOverrideUrlLoading(view, url);
 
}
 
//  안드로이드 6.0이상일때
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
 
    Uri uri = Uri.parse(view.getUrl()); //url을 uri로 변경
 
    if(uri.getPath().contains("/test/page")){  // 현재 uri의 path에 컨테인만 읽기
 
        Intent intent = new Intent(MainActivity.this, TestActivity.class); // 새창을 여는 액티비티나, 팝업일때 이용하면 용이합니다.
        intent.putExtra("url",view.getUrl());
        startActivity(intent);
 
        return true;
    }
 
    return super.shouldOverrideUrlLoading(view, request);
 
}
cs


 위와같이 현재 url를 읽어서 새로운 창을 열거나 아니면 팝업창을여는 기능을 할 때 많이 사용합니다.



↓웹의 자바스크립트와 안드로이드 메서드(Method)를 연결하는 자바스크립트 브릿지 입니다.

2018/12/18 - [안드로이드] - [안드로이드] 자바스크립트 연동(자바스크립트 브릿지)



유익하셨다면 좋아요 한번씩 클릭해 주시고 댓글도 하나 달아주시면 감사하겠습니다.

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band