Probleme mit WebView

  • 5 Antworten
  • Letztes Antwortdatum
N

niko132

Neues Mitglied
9
Hallo ich habe 2 kleine Probleme. Und zwar habe ich eine App geschrieben, welche mir den aktuellen Vertretungsplan meiner Schule anzeigt und mir eine Benachrichtigung ausgiebt, falls es eine Änderung bei der eingestellten Klasse gibt. Das funktioniert soweit alles einwandfrei. Jedoch fehlt bei meinem WebView im Portrait Modus die letzte Spalte der Tabelle. Normalerweise gibt es noch eine Spalte "Info", welche im Landscape Modus auch angezeigt wird. Weiß jemand woran das liegen könnte? Ich lade die XML Datei mit der Methode WebView.loadUrl(String URL) und speicher sie anschließend in einem String ab um die Daten auswerten zu können. In dem String existiert die fehlende Spalte jedoch.

Mein zweites Problem: Bei meinem Smartphone (LG G3) wird die Seite beim starten der App immer aktualisiert. Mein Bruder stellte aber heute auf seinem Note 3 fest, dass immer der alte Plan angezeigt wird. Ich habe vermutet, das das Note 3 die Seite vielleicht noch im Cache gespeichert hat und sie auch von dort wieder lädt. Deshalb habe ich versucht den Cache der App zu leeren jedoch erfolglos. Wieso wird die Seite bei ihm nicht aktualisiert?

Ich bitte um schnelle Hilfe.

Hier noch ein Screenshot von der App wegen der fehlenden Spalte.
 

Anhänge

  • screenshot.png
    screenshot.png
    32,4 KB · Aufrufe: 205
da kann man dir ohne wenigstens etwas code (vor allen die kritischen stellen) nicht helfen oder wenigstens eine genauere beschriebung denn eine frage in der form:

Ich machen so Auto machen so dann bumm!:scared:

hilft einem nicht viel weiter :biggrin:
 
Sorry, ich dachte das wäre vielleicht auch ohne code zu klären. :biggrin:

Code:
private String URL="http://www.franziskaneum.de/vplan/vplank.xml";
	
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);

	webView=(WebView) findViewById(R.id.webView1);
		
	webView.addJavascriptInterface(new javaScriptInterface(), "HTMLOUT");
		
	webView.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url)
		{
		   webView.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
		}
        });
		
	webView.getSettings().setJavaScriptEnabled(true);
	webView.getSettings().setBuiltInZoomControls(true);
	webView.loadUrl(URL);
}

Das ist ein Ausschnitt aus der MainActivity, in der die Seite geladen wird.
Der Fehler könnte eigentlich nur hier liegen aber ich weiß nicht was ich falsch mache..
 
Das liegt vermutlich an der vplank.xsl (bzw. vplank.css) - hier wird wohl anhand der Bildbreite per responsive Design die Info-Spalte ein- oder ausgeblendet - kannst du im normalen Browser auch nachvollziehen, wenn du dessen Breite einfach mal änderst.
 
Das heißt wenn ich den Link der .xls Datei aus meinem String entferne/durch eine andere Datei ersetze und dann den String lade müsste es funktionieren? :smile:
 
Also wenn du schon XML zurück bekommst, dann würde ich das parsen, in eigene Klassen überführen (deserialisieren?) und mir dazu dann eine geeignete Anzeige überlegen (die dann auch völlig unabhängig vom CSS oder XSL (nicht XLS) der Quelle ist).


Aber wenn du das XSL durch ein eigenes ersetzt, dann sollte es auch klappen, ja.
 
Zurück
Oben Unten