WebView로 HTML 파일로드


189

WebView로로드하려는 로컬 HTML 페이지와 함께 다른 여러 리소스 (css 파일 및 Javascript 라이브러리)가 있습니다. 이것이 어떻게 달성 될 수 있습니까?

아마도 가장 좋은 방법은 아니지만 아직 실험 중입니다.


나를 위해 점 html -webView.loadUrl ( "file : /// android_asset / filename");
Quemeful

4
@Joe의 답변을 수락하지 않으려는 이유는 무엇입니까?
ClassA

3
webview.loadUrl ( "file : ///android_asset/sample.html"); - 여기를 클릭하십시오
c49

답변:


350

가장 쉬운 방법은 웹 리소스를 자산 폴더에 넣고 다음을 호출하는 것입니다.

webView.loadUrl("file:///android_asset/filename.html");

Java와 Webview 간의 완벽한 통신은 다음을 참조하십시오.

업데이트 : 자산 폴더는 일반적으로 다음 폴더입니다. 파일<project>/src/main/assets 의 자산 폴더 구성 설정에서 다음과 같이 변경할 수 있습니다 .<app>.iml

<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” />Android Studio에서 자산 폴더를 배치 할 위치 기사 참조


6
이 문제는 실제로 FAQ입니다.
shihpeng

2
자산 사용에 매우 불리한 경우 아마도 문자열로로드 할 수도 있습니다 ... ( stackoverflow.com/questions/4543349/load-local-html-in-webview 참조 )
Joe

24
이것은 정답으로 표시되어야합니다.
gorodechnyj

6
@ SK9 시작 활동 클래스의 이름을 변경하고 AndroidManifest.xml이를 반영하도록 업데이트하지 않는 등 다른 자산 또는 예상 파일이 누락 된 경우에도 동일하게 적용됩니다 . (개인적으로 URL / 파일 경로를 문자열 리소스에 넣고 거기에서 액세스하여 프로그램의 다른 모든 문자열 데이터와 경로가 있지만 실제로 자산 / 문제와 직접 관련이없는 경로를 사용하는 것이 좋습니다 – 자원 의존성.)
JAB

7
애셋 폴더를 만드는 방법을 모르는 경우 "app"-> "New"-> "Folder"-> "Assets Folder"를 마우스 오른쪽 단추로 클릭하고 "Finish"를 클릭하십시오. Android Studio는 올바른 폴더에 자산 폴더를 만듭니다. 그리고 html 파일을 새 자산 폴더로 옮기면됩니다. 참조 : stackoverflow.com/questions/18302603/…
Yuchao Zhou

28

이 샘플이 도움이 될 것입니다.

  WebView lWebView = (WebView)findViewById(R.id.webView);
  File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
  lWebView.loadUrl("file:///" + lFile.getAbsolutePath());

3
외부 메모리에 html이있는 예에서는 응용 프로그램 내에 html을 포함하는 것이 가장 좋습니다.
Jonathan García

1
로컬 장치 디렉토리에서 HTML 파일을 사용할 때 "file : ///"이 중요합니다. 감사합니다
ralphgabb

5

이 경우 사용하는 WebView#loadDataWithBaseUrl()것이 WebView#loadUrl()! 보다 좋습니다 .

webView.loadDataWithBaseURL(url, 
        data,
        "text/html",
        "utf-8",
        null);

url : url / path 모든 JavaScript 파일 및 html 링크가 디렉토리를 가리키는 문자열입니다. null 인 경우는 공란입니다. data : hmtl 파일을 포함하는 문자열, 예를 들어 BufferedReader로 읽음

추가 정보 : WebView.loadDataWithBaseURL (java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)


3
데이터 변수 란 무엇입니까 ? 예를 들어주세요.
IgorGanapolsky

0

수락 된 답변이 나를 위해 작동하지 않습니다, 이것이 나를 위해 작동하는 것입니다

WebSettings webSetting = webView.getSettings();
    webSetting.setBuiltInZoomControls(true);
    webView1.setWebViewClient(new WebViewClient());

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

모바일 버전은 무엇입니까?
Jimale Abdi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.