WebView로로드하려는 로컬 HTML 페이지와 함께 다른 여러 리소스 (css 파일 및 Javascript 라이브러리)가 있습니다. 이것이 어떻게 달성 될 수 있습니까?
아마도 가장 좋은 방법은 아니지만 아직 실험 중입니다.
WebView로로드하려는 로컬 HTML 페이지와 함께 다른 여러 리소스 (css 파일 및 Javascript 라이브러리)가 있습니다. 이것이 어떻게 달성 될 수 있습니까?
아마도 가장 좋은 방법은 아니지만 아직 실험 중입니다.
답변:
가장 쉬운 방법은 웹 리소스를 자산 폴더에 넣고 다음을 호출하는 것입니다.
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에서 자산 폴더를 배치 할 위치
기사 참조
AndroidManifest.xml
이를 반영하도록 업데이트하지 않는 등 다른 자산 또는 예상 파일이 누락 된 경우에도 동일하게 적용됩니다 . (개인적으로 URL / 파일 경로를 문자열 리소스에 넣고 거기에서 액세스하여 프로그램의 다른 모든 문자열 데이터와 경로가 있지만 실제로 자산 / 문제와 직접 관련이없는 경로를 사용하는 것이 좋습니다 – 자원 의존성.)
이 샘플이 도움이 될 것입니다.
WebView lWebView = (WebView)findViewById(R.id.webView);
File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
lWebView.loadUrl("file:///" + lFile.getAbsolutePath());
이 경우 사용하는 WebView#loadDataWithBaseUrl()
것이 WebView#loadUrl()
! 보다 좋습니다 .
webView.loadDataWithBaseURL(url,
data,
"text/html",
"utf-8",
null);
url : url / path 모든 JavaScript 파일 및 html 링크가 디렉토리를 가리키는 문자열입니다. null 인 경우는 공란입니다. data : hmtl 파일을 포함하는 문자열, 예를 들어 BufferedReader로 읽음
수락 된 답변이 나를 위해 작동하지 않습니다, 이것이 나를 위해 작동하는 것입니다
WebSettings webSetting = webView.getSettings();
webSetting.setBuiltInZoomControls(true);
webView1.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/index.html");