Hey Leute,
ich bin noch relativ neu in Android, habe vor längerer Zeit mal Java gelernt (1 Semester Info vor 3 Jahren) und bringe mir gerade Android bei (der eigene CookieClicker geht jedenfalls ). Hab schon 2 Bücher durchgepaukt (was man "gratis" über die Uni eben so bekommt), aber konnte noch nichts wirklich weiterführendes zum Thema WebView finden. Jetzt dachte ich mir: versuch mal was praktischeres und bastel dir eine gute App für einen xbeliebigen WebShop nach. Ich habe einige Indische Tutorials durchgeschaut und bin bis jetzt eigtl sehr zufrieden. Vom Interface habe ich eigentlich fast alles, was es braucht. Ich binde eine responsive Webside ein, hab NavDrawer mit Links, Suchleiste, einen schönen SplashScreen, Processbars für den Seitenwechsel, per Firebase kann ich Nachrichten an die Nutzer schicken - was will man mehr? .
Im Prinzip habe ich auch nur noch das folgende Problem, bei dem ich noch nicht so wirklich eine funktionierende Lösung finden konnte. Ich möchte einen WebView laden, allerdings ein paar Jscript Klassen von der Seite runternehmen, weil die da einfach unpassend sind. Gelöst habe ich das, indem ich in der onPageFinished() Funktion einfach nur im Nachhinein sowas lade
webView.loadUrl("javascript:(function() { " + "document.getElementsByClassName('menu')[0].style.visibility = 'hidden'; " + "})()");
Der Code funktioniert auch super. Leider scheint es so zu sein, dass er die Seite halt erst lädt und das Script erst bis zu 3-4 Sekunden später ausgeführt wird. Im Ergebnis sieht man, wie das Jscript da ist und sich dann erst ausblendet, was sehr unschön ist. Ich habe bereits diverese Workarounds versucht, aber konnte mir noch nicht helfen. Wenn möglich, würde ich gerne diesen "Lag" beseitigen. Eine Hilfestellung scheint das hier zu sein: stackoverflow.com . Leider scheine ich die entsprechende Lösung nicht ganz zu verstehen, hat jemand eine Ahnung, wie ich das erfolgreich einbauen kann? Vllt ein Codesample, das funktioniert? Auf seinem Blog scheint der Antwortsteller folgendes vorzuschlagen, was ich einfach nicht richtig hinbekomme: http://android-know-how-to.blo…ascript-onpagefinish.html . Er macht sich eine eigene onLoad() Methode und lädt alles irgendwie über ein @JavascriptInterface . Ich hab versucht, das nachzubauen, bekomme es aber einfach nicht hin.
Desweiteren eine eher allgemeine Frage: ich dachte mir, dass ich mit Jsoup gewisse Elemente aus der Seite auslesen (Links für meinen Navdrawer, die jetzt noch hardcoded sind und Anzahl der Produkte im Warenkorb). Ist Jsoup sehr Datenhungrig? ich möchte nämlich eine möglichst niedrigen Datenverbrauch anstreben. Er muss nämlich auf jeden Seitenwechsel bei onPageFinished() den Warenkorb auslesen.
Ich möchte nochmal ausdrücklich darauf Hinweisen: das hier ist keine Hausaufgabe oder sowas, sondern nur privates Interesse. Irgendwie hat das klein Angefangen, aber nun habe ich 5 Klassen und ca. 600 Zeilen Code sowie etliche Stunden reingesteckt. Eigtl wollte ich das auch irgendwie alles alleine hinbekommen, aber irgendwie bekomme ich da einfach keine funktionierende Sache bei raus
Vielen Dank für eure Hilfe!