Рендеринг HTML в WebView с помощью пользовательского CSS


мое приложение использует JSoup для загрузки HTML страницы Доски объявлений (скажем, в этом случае это страница, содержащая сообщения данного потока). Я хотел бы взять этот HTML, удалить ненужные элементы и применить пользовательский CSS, чтобы сделать его "мобильным" в веб-представлении.

должен ли я вводить стили в HTML по мере его обработки (так как я буду обрабатывать его в любом случае) или есть хороший способ добавить файл CSS в активы моего приложения и просто ссылаться на него. Я полагаю, что последнее будет идеально, но не уверен, как это сделать.

Я вижу подсказки в WebView loadDataWithBaseURL что вы можете ссылаться на местные активы, но не знаете, как его использовать.

1 71

1 ответ:

вы могли бы использовать WebView.loadDataWithBaseURL

htmlData = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />" + htmlData;
// lets assume we have /assets/style.css file
webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "UTF-8", null);

и только после этого WebView сможет найти и использовать css-файлы из каталога assets.

ps и, да, если вы загружаете свой html-файл из папки assets, вам не нужно указывать базовый url.