Загрузить файл HTML в WebView - PullRequest
176 голосов
/ 22 апреля 2011

У меня есть локальная html-страница вместе с несколькими другими указанными на ней ресурсами (css-файлы и библиотеки Javascript), которые я хотел бы загрузить в WebView.Как этого достичь?

Возможно, это не лучший способ продолжить, но я все еще экспериментирую.

Ответы [ 4 ]

333 голосов
/ 22 апреля 2011

Самый простой способ, вероятно, состоит в том, чтобы поместить ваши веб-ресурсы в папку assets и затем вызвать:

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

23 голосов
/ 19 мая 2012

вероятно, этот образец может помочь:

  WebView lWebView = (WebView)findViewById(R.id.webView);
  File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
  lWebView.loadUrl("file:///" + lFile.getAbsolutePath());
6 голосов
/ 15 января 2012

В этом случае использование WebView#loadDataWithBaseUrl() лучше, чем WebView#loadUrl()!

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

url: url / path Строка, указывающая на каталог, все ваши файлы JavaScript и ссылки html имеют свое происхождение.Если ноль, это о: пусто.data: строка, содержащая ваш файл hmtl, прочитайте с помощью BufferedReader, например

Подробнее: WebView.loadDataWithBaseURL (java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)

0 голосов
/ 02 мая 2019

Принятый ответ не работает для меня, это то, что работает для меня

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

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