WebView Eclipse

  • Antworten:30
Robin D.
  • Forum-Beiträge: 17

19.10.2012, 17:09:52 via Website

Liebes Forum,
ich arbeite seit einigen Wochen an einer App. Bin aber auch gerade erst ins app-programmieren eingestiegen (mit eclipse, java).
Also wollte ich mal ganz simpel anfangen und eine App programmieren, die mir den aktuellen Vertretungsplan meiner Schule anzeigt. Das habe ich soweit mit WebView geschafft, da die Website aktualisiert wird und somit auch der inhalt meiner App, jedoch tritt folgendes Problem auf. Öffne ich die Website des Vertretunsplanes mit meinem Rechner, ist alles übersichtlich formatiert:



Lasse ich die Website aber mit meiner App öffnen, ist alles komplett unformatiert:



Ich muss meine App aber sagen, dass sie den Inhalt von dieser Website beziehen soll, da der Vertretungsplan von der Schule automatisch aktualisiert wird und ich somit die App nicht jeden Tag neu programmieren muss.

Ich bin total überfragt und habe bisher auch noch keine Lösungen / Tutorials gefunden. Ich hoffe es ist alles verständlich erklärt und jemand ist bereit mit zu helfen.

Vielen Dank im Voraus,
Robin

Antworten
Robin D.
  • Forum-Beiträge: 17

19.10.2012, 22:36:59 via Website

Ersteinmal vielen Dank für Ihre schnelle Antwort. Ich hoffe hiermit ist Ihre Frage beantwortet:

.java:



layout.xml:



Was ich jetzt noch zusätzlich herausgefunden habe ist, dass das Problem (hoffentlich) nicht bei meiner App liegt sondern, dass die Website einfach nicht für mobile Geräte kopatibel ist. Was nun?

— geändert am 19.10.2012, 22:40:24

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

20.10.2012, 09:05:21 via Website

Mit einer xml Datei habe ich den WebViewer noch nie gefüllt. Wahrscheinlich ist das das normale Ergebnis.
Warum verwendest Du keine "normale" html Datei?

— geändert am 20.10.2012, 09:05:44

Antworten
Felice M.
  • Forum-Beiträge: 53

20.10.2012, 09:10:18 via App

Du rufst eine XML-Datei auf, sicher, dass die Url in deinem Code richtig ist?
Ansonsten müsstest du evtl. die Datei noch parsen etc.

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 09:19:27 via Website

Folgendes Problem: Man kann den Vertretungsplan meiner Schule nur so aufrufen: Man besucht unsere Website. Ich wusste aber nicht wie ich das in meine App integrieren sollte. Ich hatte da so eine Idee, dass man praktisch einmalig, wenn man die App öffnet dieses Passwort eingeben muss, aber leider habe ich davon bis jetzt noch keine Ahnung.(Lösungsvorschläge oder ist das das falsche Forum?)
Um das Passwort zu umgehen habe ich via Rechner den Vertretungsplan abgerufen und bin dann auf die .xml gekommen. Diese habe ich dann einfach im WebView verwendet.

Die Datein "parsen" etc. Hilfe! Ich habe gerade erst angefangen. Ich muss mich in das Thema erst noch ein bischen reinarbeiten und kann Ihnen somit noch nicht sofort folgen.

— geändert am 14.12.2012, 22:15:15

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

20.10.2012, 09:34:31 via Website

Für die html-Seite braucht man ein Passwort und für die XML nicht. Was sind das denn für Sicherheitskonzepte an Euer Schule?
Dass Du mit der XML-Daten keine html-Seite erhälst ist wohl klar.

Als entweder Login integrieren. Bin ich nicht der Experte - da wissen andere besser Bescheid
oder tatsächlich
die XML-Datei parsen dann könntest Du dann auch einen eingenen View machen der besser auf das Phone abgestimmt ist.
Das parsen müsste zu machen sein.

— geändert am 20.10.2012, 10:07:18

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 10:17:50 via Website

Also, das Sicherheitsproblem hat sich mittlerweile erledigt. Man wird nicht mehr zu dieser .xml weiterheleitet, aber ich hatte mir mal vor ein paar Jahren, als diese xml noch existierte, diese als Lesezeichen gespeichert, sodass ich nicht immerwieder das Passwort eingeben muss. Und diesen Link habe ich jetzt in WebView verwendet.

Aber bitte: könnten Sie entweder auf das parsen genauer eingehen oder mir wenigsten mitteilen, nach was ich suchen soll, da diesen Problem vermutlich zu speziell ist. Mit dem ganzen xml und html Format und dem Passwort: "parsen bei eclipse", "parsen WebView andoird" oder könnten Sie mir das erklären, wenn Sie dadurch nicht an etwas gehindert wären? Bitte verstehen Sie mich nicht falsch, ich habe gerade erst angefangen, bin aber auch sehr interssiert in diesem Komplex. Ich möchte nicht, dass Sie Ihre Zeit verschwenden aber, wenn es nötig ist kaufe ich auch ein Buch o.ä. ,wenn Sie meinen, dass diesen von nöten ist.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

20.10.2012, 10:33:12 via Website

Ich verstehe nicht wieso man dafür eine App braucht. Es wird doch nur die Webseite angezeigt - das kann man doch mit jedem Device ohne Programmierung. Wo bleibt der Mehrwert?

Also den Link auf die Webseite für zukünftige Aufrufe im Browser abspeichern, Link aufrufen und alles klappt wie von selbst.

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 10:41:17 via Website

Das Problem ist, dass wenn ich die Website mit meinem Mobilen Gerät aufrufe ist der Text unformatiert:



und kaum leserlich.
Ich möchte, dass der Vertretungsplan via App leserlich (heißt Tabelle) angezeigt wird:



Die Website ist nicht für mobile Geräte geschrieben worden (oder meine Schule ist nicht fähig dazu), deshalb wollte ich wissen ob man das in einer App umformatieren kann (parsen?). Oder muss man da die ganze Website umschreiben?

— geändert am 20.10.2012, 10:43:28

Antworten
Andreas Weichert
  • Forum-Beiträge: 287

20.10.2012, 10:43:51 via Website

Wir können beim "Du" bleiben :D
Also so speziell ist das nicht - es wird häufig verwendet um Information aus Webseiten herrauszulesen.
Für Programmieranfänger ist das allendings nicht so einfach. Man muß die Struktur des Dokumentes kennen und dann im Text suchen.
Dafür kann ich leider keine allgemeine Anleitung geben.
Bin auch erst sein 4-5 Monaten bei Android (programmiere länger in C++). Was es da schon an fertigen Bibliotheken gibt um diese Aufgabe zu erledigen weiß ich nicht.
Wenn Du die Information schon hättes müßtest Du auch noch die Darstellung in Android programmieren.
Da du anscheinend noch nicht so viel Programmiererfahrung hast, denke das diese Projekt zu hard für dich ist.

Außer dem MUST Du Dich ja einloggen, da die XML nicht mehr zur Verfügung steht.
D.h. Du mußt das Login dirket auf die HTML-Seite irgenwie hinbekommen.
Ich kann Dir leider dabei nicht weiterhelfen - hab mich noch nicht damit befasst. Sorry....
Viel Erfolg !

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 10:49:38 via Website

Ich danke Dir aber trotzdem für die schnelle Hilfe und werde mal noch schauen ob ich etwas mehr zum herauslesen der Informationen finde, sonst werde ich das Projekt wohl erstmal stilllegen müssen.

Antworten
Maximilian O
  • Forum-Beiträge: 990

20.10.2012, 11:21:36 via App

Hi Robin,
wenn du exakt den gleichen Link auf deinem Computer und Telefon aufrufst, dich korrekt einloggst, dann verstehe ich nicht warum du unterschiedliche Ergebnisse hast. Hast du im Telefon Browser mal die Desktopseite angefordert?

Lg Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 12:50:50 via Website

Hallo Maximilian,
die Hompage meiner Schule hat gar keine mobile Version, sonder nur die Desktopseite. Heißt, wenn ich mit meinem Handy die Hompage aufrufe lande ich automatisch auf der Desktopversion. Deshalb ist der Vertretungsplan (.xml) wahrscheinlich auch, via Handy, so unleserlich. Und das war auch die Intention meiner App: den Vertretunsplan mobil abzurufen zu können.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

20.10.2012, 12:54:01 via App

Weil Du die XML Seite aufrufst erhälst Du das unformatierte Ergebnis. Wenn Du den Link der HTML-Website mit dem Browser startest und das Passwort beim ersten Aufruf speichern lässt klappt das.

Spar Dir die 3-Zeilen App.

— geändert am 20.10.2012, 12:56:03

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 12:58:59 via Website

Selbst wenn ich über den mobilen Browser die Website aufrufe und dann das Passwort eingebe erhalte ich das gleiche unformatierte Ergebnis.
Ich möchte einfach nur meinen Vertretungsplan mobil abrufen können!
Ich hätte nicht gedacht, dass das so aufwändig ist.

— geändert am 20.10.2012, 13:11:25

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

20.10.2012, 13:47:20 via Website

Dann stimmt etwas nicht.

Ruf doch bitte mal die HTML-Webseite mit einem Desktop-Browser auf, log Dich ein und geh auf die Vertretungsseite. Nun schau Dir den Quelltext an. Ist das HTML oder XML?

EDIT: Vergiss es:

Der Vertretungsplan ist XML! Da wirst Du nicht um Programmierung drumherum kommen - es sei denn Du gehst davon aus das auf jedem Device Deiner Kunden ein XML-Viewer installiert ist. Es gibt für die Programmierung verschiedene Techniken und dazu tonnenweise Hinweise im Netz. Ein paar Stichworte:

* Laden der Daten in einem AsyncTask.

* Laden der Daten (HTTPGet, ...)

* Lesen der Daten (XMLParser, SAXParser, ...)

* Layout erstellen (ListView, Custom Row Layout, ...)

* ListActivity

...

1<vp>
2 <kopf>
3 <titel>Montag, 22. Oktober 2012</titel>
4 <schulname>Latina "August Hermann Francke"</schulname>
5 <datum>19.10.2012, 13:26</datum>
6 <kopfinfo>
7 <abwesendl>Bt, Da, Gs (1.-6.Stunde), Ls, Ms, O</abwesendl>
8 <abwesendk>10/3 (1.-6.Stunde)</abwesendk>
9 <aenderungl>Be, Bm, Br, Bt, Da, Ev, K, La, Mc, Ms, Mt, Mü, Sd, Si, V, W, Wd, Wi</aenderungl>
10 <aenderungk>10/4, 11, 12, 5/2, 6/1, 7/4, 8/2, 9/4, Allg</aenderungk>
11 </kopfinfo>
12 </kopf>
13 <aufsichten>
14 <aufsichtzeile>
15 <aufsichtinfo>10:20: Hs42Zeit2 - Hs43_1.Eta --&gt; K (für Ms)</aufsichtinfo>
16 </aufsichtzeile>
17 <aufsichtzeile>
18 <aufsichtinfo>10:20: Hs42Zeit2 - Hs43_2.Eta --&gt; Sd (für Bt)</aufsichtinfo>
19 </aufsichtzeile>
20 <aufsichtzeile>
21 <aufsichtinfo>11:15: OZeit2 - OHofh --&gt; Si (für Da)</aufsichtinfo>
22 </aufsichtzeile>
23 </aufsichten>
24 <fuss>
25 <fusszeile>
26 <fussinfo>Jg. 12 Klausuren lt. Plan</fussinfo>
27 </fusszeile>
28 <fusszeile>
29 <fussinfo>Kl. 10/3 - 1.-6. Std. Exkursion Flughafen (Gs)</fussinfo>
30 </fusszeile>
31 <fusszeile>
32 <fussinfo></fussinfo>
33 </fusszeile>
34 </fuss>
35 <haupt>
36 <aktion>
37 <klasse>5/2</klasse>
38 <stunde>1</stunde>
39 <fach>---</fach>
40 <lehrer>---</lehrer>
41 <raum>---</raum>
42 <info>Geo Da fällt aus</info>
43 </aktion>
44 <aktion>
45 <klasse>5/2</klasse>
46 <stunde>2</stunde>
47 <fach>Mus</fach>
48 <lehrer>Bm</lehrer>
49 <raum>R306</raum>
50 <info>Raumänderung</info>
51 </aktion>
52 <aktion>
53 <klasse>6/1</klasse>
54 <stunde>7</stunde>
55 <fach>Spo</fach>
56 <lehrer>Wd</lehrer>
57 <raum>TH1a</raum>
58 <info>für Spo Ms</info>
59 </aktion>
60 <aktion>
61 <klasse>7/4</klasse>
62 <stunde>1</stunde>
63 <fach>---</fach>
64 <lehrer>---</lehrer>
65 <raum>---</raum>
66 <info>Bio Br gehalten am Do (18.10.) St.5</info>
67 </aktion>
68 <aktion>
69 <klasse>7/4</klasse>
70 <stunde>5</stunde>
71 <fach>Lat</fach>
72 <lehrer>Ev</lehrer>
73 <raum>R111</raum>
74 <info>für Geo Da</info>
75 </aktion>
76 <aktion>
77 <klasse>7/4</klasse>
78 <stunde>6</stunde>
79 <fach>Mus</fach>
80 <lehrer>Bm</lehrer>
81 <raum>R306</raum>
82 <info>verlegt von St.7, Geo Da fällt aus</info>
83 </aktion>
84 <aktion>
85 <klasse>8/2</klasse>
86 <stunde>7</stunde>
87 <fach>---</fach>
88 <lehrer>---</lehrer>
89 <raum>---</raum>
90 <info>Geo Da fällt aus</info>
91 </aktion>
92 <aktion>
93 <klasse>8/2</klasse>
94 <stunde>8</stunde>
95 <fach>---</fach>
96 <lehrer>---</lehrer>
97 <raum>---</raum>
98 <info>Geo Da fällt aus</info>
99 </aktion>
100 <aktion>
101 <klasse>9/4</klasse>
102 <stunde>5</stunde>
103 <fach>Ges</fach>
104 <lehrer>V</lehrer>
105 <raum>R210</raum>
106 <info>für Eng Bt</info>
107 </aktion>
108 <aktion>
109 <klasse>10/4</klasse>
110 <stunde>3</stunde>
111 <fach>Eng</fach>
112 <lehrer>La</lehrer>
113 <raum>1106</raum>
114 <info>für Eng Bt</info>
115 </aktion>
116 <aktion>
117 <klasse>10/4</klasse>
118 <stunde>4</stunde>
119 <fach>Mat</fach>
120 <lehrer>Mü</lehrer>
121 <raum>1211</raum>
122 <info>Raumänderung</info>
123 </aktion>
124 <aktion>
125 <klasse>11/ eng1</klasse>
126 <stunde>1</stunde>
127 <fach>---</fach>
128 <lehrer>---</lehrer>
129 <raum>---</raum>
130 <info>Eng Bt fällt aus</info>
131 </aktion>
132 <aktion>
133 <klasse>11/ eng1</klasse>
134 <stunde>2</stunde>
135 <fach>---</fach>
136 <lehrer>---</lehrer>
137 <raum>---</raum>
138 <info>Eng Bt fällt aus</info>
139 </aktion>
140 <aktion>
141 <klasse>12/ bio1</klasse>
142 <stunde>1</stunde>
143 <fach>Bio</fach>
144 <lehrer>Be</lehrer>
145 <raum>1109</raum>
146 <info>Klausur</info>
147 </aktion>
148 <aktion>
149 <klasse>12/ bio1</klasse>
150 <stunde>2</stunde>
151 <fach>Bio</fach>
152 <lehrer>Mc</lehrer>
153 <raum>1109</raum>
154 <info>Klausur</info>
155 </aktion>
156 <aktion>
157 <klasse>12/ soz3</klasse>
158 <stunde>3</stunde>
159 <fach>Soz</fach>
160 <lehrer>Mt</lehrer>
161 <raum>1206</raum>
162 <info>für Soz Ms</info>
163 </aktion>
164 <aktion>
165 <klasse>12/ soz3</klasse>
166 <stunde>4</stunde>
167 <fach>Soz</fach>
168 <lehrer>Mt</lehrer>
169 <raum>1206</raum>
170 <info>für Soz Ms</info>
171 </aktion>
172 <aktion>
173 <klasse>Allg</klasse>
174 <stunde>7</stunde>
175 <fach>HA</fach>
176 <lehrer>W</lehrer>
177 <raum>R206</raum>
178 <info>für HA Bt</info>
179 </aktion>
180 </haupt>
181</vp>

— geändert am 20.10.2012, 14:14:32

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:26:43 via Website

Vielen vielen Dank! Ich werd mich damit erstmal beschäftigen.

Aber habe ich das mit der ListActivity jetzt richtig verstanden? Ich muss die Activity jeden Tag neu schreiben? -weil sich der Plan ja auch jeden Tag ändert.

— geändert am 20.10.2012, 14:27:52

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

20.10.2012, 14:30:28 via Website

Natürlich nicht. Die ListActivity stößt auf Wunsch des Benutzers das Laden an und zeigt die Daten in der ListView an.

Nochmal EDIT: Ich habe die Seite gerade mit dem Chrome Browser auf meinem Handy angeschaut - der rendert das richtig. Auch der normale Browser meines 4.1.2 Galaxy Nexus zeigt die Seite korrekt an.

Fragen: Hast Du das wirklich mal mit dem Handy ausprobiert über den offiziellen Link der Seite? Welche Android Version nutzt Du?

— geändert am 20.10.2012, 14:36:30

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:32:00 via Website

Edit: SIe können von ihrem Handy aus den Plan ordentlich formatiert anschauen?

Mit der ListActivity, die Sie ins Forum geschrieben haben? Ich habe mein WebView einfach durch ihre Activity ersetzt. Leider führt dies zu keinem Ergebnis - was ist vp? und wie muss die Layout.xml geschrieben werden?

— geändert am 20.10.2012, 14:36:51

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:39:32 via Website

Android 2.3.5. Aber auch viele meiner Mitschüler haben dieses Problem mit ihrem Handy (den Vertretungsplan abzurufen).

Ich kann ihrer Activity nicht ganz folgen. Könnte man die so 1:1 kopieren und dann mal mit einem Emulator starten?

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:41:03 via Website

Sorry für die dumme Frage mit vp, jetzt fällt mir es auch auf.

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:43:04 via Website

Könnten Sie mir eine mal eine Beispiel layout.xml geben mit der ich den aktuellen Vertretungsplan formatiert anschauen kann und das ganze mal nachvollziehen kann?

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 14:47:31 via Website

Schon klar. Aber worin muss ich denn das was Sie geschrieben haben einbinden? Was Hat das für eine Funktion?

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

20.10.2012, 14:51:34 via Website

Wovon redest Du? Von dem XML Code den ich gepostet habe?

Das ist der Vertretungsplan Deiner Schule. Ich habe nur die Website aufgerufen, den Link Vertretungsplan angeklickt, auf Vertretungsplan Schüler geklickt, Dein Passwort eingegeben und das war das Ergebnis. Gepostet habe ich den Quellcode dieser Seite.

Langsam komme ich mir veräppelt vor.

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 15:13:50 via Website

OK. Jetzt kann ich Ihnen folgen. Ich dachte der gepostete Quellcode hat etwas mit der layout.xml zu tun. Als TextView oder so. Ich entschuldige mich.

Edit: 1.Wie bekomme ich nun den Inhalt des Quellcodes in meine app (via TextView?)
2.Wie kann dieser Inhalt von Tag zu Tag aktualisiert werden?

— geändert am 20.10.2012, 15:15:58

Antworten
Robin D.
  • Forum-Beiträge: 17

20.10.2012, 15:25:33 via Website

Wenn das zur Lösung führt, bedanke ich mich auch bei Ihnen für die schnelle Hilfe. (Bitte entschuldigen Sie meine Denkfehler.)

Antworten
Robin D.
  • Forum-Beiträge: 17

19.12.2012, 17:52:17 via Website

Ich hab jetzt ziemlich lange daran herumprobiert. Also Problem mit Passwort ist gelöst:

if (passwort.getText().toString().equals("Latina@Schueler")) {
Toast.makeText(getApplicationContext(), "Lade Daten",
Toast.LENGTH_LONG).show();
Intent myIntent = new Intent(v.getContext(), Vertretungsplan.class);
startActivityForResult(myIntent, 0);

} else
Toast.makeText(getApplicationContext(), "Falsches Passwort",
Toast.LENGTH_LONG).show();

aber ich komme bei dem xml-parser einfach nicht weiter. Nachdem ich mir einige Tutorials dazu ansah, versuchte ich diese auf den xml code des Vertretungsplanes anzuwenden. Leider komm ich nicht so recht voran. Kann mir jemand zeigen, wie nur der parser aussieht?

Antworten