Android WebView Javascript из активов

Всем добрый день. Надежда следующая могла бы быть полезной для других, поскольку мне пришлось провести почти весь вечер, чтобы заставить дело работать. Простое решение для простой задачи. Таким образом, вопрос будет следующим: «Как я могу сделать javascript и изображения на моей удаленной странице html загружен из папки с ресурсами (или только с любым локальным ресурсом)?»

Ответ:
1. Вы ДОЛЖНЫ загружать HTML в строку:

private String readHtml(String remoteUrl) { String out = ""; BufferedReader in = null; try { URL url = new URL(remoteUrl); in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { out += str; } } catch (MalformedURLException e) { } catch (IOException e) { } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return out; } 

2. Загрузите WebView с базовым URL:

 String html = readHtml("http://mydomain.com/my.html"); mWebView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", ""); 

В этом конкретном случае у вас должны быть все .js-файлы, которые вы хотите использовать на странице, где-то в папке «активы» проекта. Например:

 /MyProject/assets/jquery.min.js 

3. На вашей удаленной странице html вам необходимо загрузить файлы .js и .css, которые находятся в вашем приложении, например:

 <script src="file:///android_asset/jquery.min.js" type="text/javascript"></script> 

То же самое относится ко всем другим локальным ресурсам, таким как изображения и т. Д. Их путь должен начинаться с

 file:///android_asset/ 

WebView сначала загрузит необработанный HTML-код, который вы предоставили в виде строки, затем выберите .js, .css и другие локальные ресурсы, а затем загрузите удаленный контент.

Если вы динамически создаете свой HTML-код и затем используете loadDataWithBaseURL, убедитесь, что любые локальные ресурсы, например javascript в вашей папке с ресурсами, упоминаются в HTML как файл: /// (я потратил часы на это)

Intereting Posts
Перехватить входящее SMS-сообщение и изменить его Ионная ошибка при обработке действия! Попытка вернуться Решено: невозможно загрузить класс 'org.gradle.internal.logging.LoggingManagerInternal'. Возможные причины этой неожиданной ошибки Пользовательский шрифт для Android listview Просто запустил Java, должен ли я продолжить с 7 или 6, чтобы код для Android? In-app billing андроидная аутентификация возврата требуется при попытке подписаться на продукт Ошибка Android в webview.loadUrl () – Целевой привязку для пути сертификации не найден Android.util.AndroidException: INSTRUMENTATION_FAILED: При загрузке Bitmap с использованием Glide, который отвечает за его переработку? Примеры кода для программирования Bluetooth на Android Как печатать локальный часовой пояс в posix формате в java (android)? Лучшая практика для загрузки файла в cdn при разработке мобильного приложения? Как выбрать отдельные значения из одного столбца в таблице? Google теперь обрабатывает обмен сообщениями whatsapp Gradle терпит неудачу с «Перегрузкой неоднозначных методов для метода java.io.File # <init>"