관리 메뉴

HAMA 블로그

[안드로이드 웹뷰] 파일 시스템으로 부터 HTML 로딩 본문

안드로이드

[안드로이드 웹뷰] 파일 시스템으로 부터 HTML 로딩

[하마] 이승현 (wowlsh93@gmail.com) 2015. 8. 21. 17:08

이 글의 요약 

-  로컬에 있는  웹 파일들을 불러와서 작업할때


웹뷰를 사용하는데 있어서 두드러지는 장점은 , 앱안에 필요한 웹 리소스들을 저장할수있다는것이다.

그것은 오프라인일때도 작업을 가능케 해주며, 로딩시간을 증진시킬것이다. 

HTML, JavaScript, CSS  를 assets 디렉토리 (src/main/assets 등에 만듬)로부터 가져와보자.

주의:   CSS 나 Javascript  를 참조할때 절대경로는  WebView 에서 작동하지 않는다.  다음과 같이 상대경로로  설정해야한다. ("/pages/somelink.html"  -> "./pages/index.html" )

아래와 같이 로딩하자.  ( 리모트에 있는 URL 을 읽어와서 작업하기 전에 전처리할것들을 이렇게 처리해도될듯)

mWebView.loadUrl("file:///android_asset/www/index.html");

( assets 안에 www 만들었어도, 링크는 저렇게'android_asset'  해야한다.)


shouldOverrideUrlLoading  를 요렇게 하면 로컬페이지가 아닐경우 브라우저를 오픈한다. 

public class MyAppWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(Uri.parse(url).getHost().length() == 0) {
            return false;
        }

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }

}




레퍼런스 :

https://developer.chrome.com/multidevice/webview/gettingstarted  



Comments