이 글의 요약
- 로컬에 있는 웹 파일들을 불러와서 작업할때
웹뷰를 사용하는데 있어서 두드러지는 장점은 , 앱안에 필요한 웹 리소스들을 저장할수있다는것이다.
그것은 오프라인일때도 작업을 가능케 해주며, 로딩시간을 증진시킬것이다.
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
'안드로이드' 카테고리의 다른 글
| 비트맵 버튼 만들기 (0) | 2015.08.22 |
|---|---|
| [안드로이드 웹뷰] 웹에서 네이티브앱의 액티비티 호출하기 (0) | 2015.08.21 |
| [안드로이드 웹뷰] 돌아가기 버튼 핸들링 (0) | 2015.08.21 |
| [안드로이드 웹뷰] 네비게이션 핸들링 (0) | 2015.08.21 |
| 안드로이드 제목바(타이틀바) 없애기 (0) | 2015.07.31 |