[Java/Android] Dopisywanie CSS do strony otwieranej w webview


(Piesek64) #1

Witam. Tworzę przeglądarkę mobilną i natknąłem się na problem. Mianowicie chcę stworzyć tryb czytania (sam tekst, zero obrazków). Problemem jest to, że musiałbym nadpisać załadowaną stronę i dopisać kod CSS. Tylko nie wiem jak to zrobić


(Frankfurterium) #2

(Piesek64) #3

Tylko jak to użyć... Bo kod

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);

nic tu nie da, skoro tylko czystą stronę da + zmienna nie działa poprawnie

Edit: czuję że lepiej będzie stworzyć plik, który będzie zawierał iframa i dodatkowo dodam do niego CSS.


(Frankfurterium) #4

 

Co to znaczy, że nie działa poprawnie?


(Piesek64) #5

Bo zmienna zawiera dodanie siebie samej mimo że nie jest zainicjowana


(kostek135) #6

Jedyne sensowne rozwiązanie jakie widzę, to nawiązać połączenie nie poprzez Webview, a zwykły obiekt HTTP, np. http://www.vogella.com/tutorials/AndroidNetworking/article.html .Z tą różnicą, że zamiast wypisywać dołączać do StringBuilder. I w momencie, gdy np. we wczytanej linii będzie , zaraz za dodać css. Wepchnąć tak przebudowany String do WebView.


(Frankfurterium) #7

 

Przykro mi, że chciałeś mieć gotowe rozwiązanie na talerzu, a mnie nie chciało się ci go podać :frowning:

 

To tylko najważniejszy fragment rozwiązania, z kontekstu idzie dowiedzieć się reszty. Sama idea mówi: pobierasz zawartość strony do Stringa i wstrzykujesz do niego linijkę linkującą do CSS-a, a na końcu całość wyświetlasz w WebView. Nie ma w tym żadnej filozofii, ale szczegóły musisz dopisać sam.