Android Studio/java

20. [안드로이드/java] webview 특정 url에서 동작 추가하기

drizzle0925 2021. 10. 20. 11:51
728x90

webview로 앱을 만들다 보면 특정 페이지로 이동했을 때 기능을 추가하고 싶을 때가 있습니다.

예를 들어 팝업창을 띄우거나 새창으로 열거나 그럴 때 사용하는 메서드가 ShouldOverrideUrlLoading()이라는 메서드입니다.

 

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

 

 

 

localhost/page1?sub=charge에 접속했을 경우 result : charge라는 로그를 남기는 코드입니다.

protected void onCreate(Bundle savedInstanceState) {
...
  mWebView.setWebViewClient(new WebViewClient(){
    @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url){
        Uri uri = Uri.parse(url);
        String queryStr = uri.getQueryParameter("sub");
        if(uri.getQueryParameter("sub").contains("charge")){
          Log.v("result : ","charge");
      }
      view.loadUrl(url);
      return true;
    }
  });
}

 

 

 

728x90