German Push up - Überprüfung

BernhardS

Member
Licensed User
Longtime User
Hallo Leute,

ich möchte eine "Newsapp" programmieren. Dazu soll regelmäßig überprüft werden, ob es News gibt und diese dann per Push up Notification angezeigt wird (wie z.b. WhatsApp). Das ganze läuft als Service im Hintergrund.
Wie programmiere ich am Besten eine solche Überprüfung? Datei auf einem Server, der regelmäßig dessen Inhalt überprüft oder gibt es eine andere Möglichkeit?
 

arautio

Member
Licensed User
Longtime User
HAllo,
nach solch einer Möglichkeit suche ich auch schon, Erel hat hierzu einen Beitrag verfasst, leider komm ich nicht ganz klar damit, falls due in der richtung weitergekommen bist, würde es mich freuen wenn du hierzu mir sagen kannst wie du das angestellt hast.
Danke Andreas
 

BernhardS

Member
Licensed User
Longtime User
Bisher habe ich es so gemacht, dass ich eine Textdatei auf einem Server habe mit einer Zeile.....Die App lädt sich diese Datei zu Beginn einmal runter und anschließend bei jeder Aktualisierung wird die Textdatei auf dem Handy mit der auf dem Server verglichen. Ist diese anders, so wird eine Benachrichtigung angezeigt. Nachteil ist, dass man einen FTP-Zugang braucht um eine Datei hochzuladen...
 

arautio

Member
Licensed User
Longtime User
Hey könnst du mir sagen, wie du die datei auf deinem Handy ladest, wie dein programm code aussieht, ich bin in der hinsicht vöölig planlos,
 

DonManfred

Expert
Licensed User
Longtime User

DonManfred

Expert
Licensed User
Longtime User
Hier im Forum war irgendwo so ein Push-Notifikation-Beispiel mit nem ZIP wo ne PHP-Datei und der b4a-Code drin ist der benötigt wird.
Im Grunde läuft das dann so ab:
User "registriert" sich in deiner App; also er gibt nen Namen an und bekommt dann - über das PHP-Script welches die Anmeldung bei google übernimmt und dann die Registrierung in einer DB abspeichert...
Wenn nun einem Anwender eine Push-Notifikation geschickt werden soll, dann übernimmt das dann ein anderes PHP-Script welches zu dem Namen des Empfängers sich den Authcode für diesen User und sendet einen Befehl an google ab (also übermittlung von Empfänger und Text).
Google wiederum schickt dann eine Pushnotifikation raus.
Wieder in B4A gibt es in besagtem Beispiel oben dann wieder einen Code der solch eine Push-Notifikation "annimmt"... Was dann aufgrund der Nachricht in der app passiert sei jedem selber überlassen.

In unserem Beispiel (wir sind ein Fensterbau-Unternehmen) haben wir in unserer Ausstellung ein Fenster mit einem Kontakt versehen. Öffnet man das Fenster so wird dies von dem Kontakt in ein Funk-Netz gespeist wo ein Programm diese "Meldung" dann registriert und über das genannte PHP-Script eine Pushnotifikation raussendet an bestimmte Personen. In diesem Beispiel meinem Chef.

In der App bei diesen Personen wiederum ist diese "Reaktion auf eine eintreffende Pushnotifikation" dann eben dass das Handy aus dem schlaf geholt und der Monitor eingeschaltet wird, eine Alarmsirene ertönt und ein Bild erscheint... Es wird (aktuell noch ein statisches Bild von einem "Einbrecher" aber später wird es noch mit einem Kamerabild versehen. Also eine Kamera die auf das besagte Fenster in unserer Ausstellung zeigt welches den Kunden Filmt der sich gerade dieses Fenster anguckt und es evtl öffnet. DAS löst dann diese Kettenreaktion aus und auf dem Handy vom chef erscheint diese Meldung welche mein Chef dann gleich dem Kunden zeigt. Die staunen jetzt schon nicht schlecht wenn sie das sehen. Wie werden die erst gucken wenn auf dem Handy ein Bild (oder gar livestream von der Kamera) von einem selber zu sehen ist :D Aber das ist - noch - Zukunftsmusik.
 

arautio

Member
Licensed User
Longtime User
Hallo Manfred,
Leider klappt das Beispiel nicht bei mir, dein Link funkt super, sobald ich meinen eingebe passiert nichts
Gruss
Andreas
 

DonManfred

Expert
Licensed User
Longtime User
Also du meinst sobald du deine URL (von besagtem Textfile) eingibst dann passiert nichts?

Evtl. postest du mal deinen Code dann könnte man sich das mal angucken...

ABER ich muss auch dazu sagen das ich dachte das würde mit einer TXT-Datei genau so funktionieren... Ich leg mal ne Textdatei auf meinen Server und dann schau ich mir mal mit dem Code von mir an... Evtl. gibt´s dann nachher noch ´n neues Beispiel ;-)

Edit: Wie ich es mir dachte lädt der auf diesem Wege auch den kompletten Inhalt einer Textdatei... Ich ermittle daraus gerade die 1. Zeile und gebe den Inhalt in dem Label aus... Beispiel kommt gleich...
 
Last edited:

DonManfred

Expert
Licensed User
Longtime User
DAS ist der Inhalt der txt-Datei auf meinem Server:

405
E03C8265:config.dat
2F6F7729:locale.ini
B08D776D:data\bsdiff.exe
F1A217E7:data\bspatch.exe
3B03E1E2:data\bzip2.exe
80FAB2CF:data\cmn\fifa.db
FF6487A1:data\cmn\fifa.db.cab
4AE7E7F4:data\cmn\fe\ger.db
A99AE8C:data\cmn\fe\ger.db.cab

Im anhang findest Du ein Beispielprojekt welches diese Textdatei von meinem Server liest und die erste Zeile ermittelt und den Inhalt dann in ein Label schreibt. "405" muss als Ergebnis da stehen wenn du den Button drückst.

Ich empfehle dir, Dich mal ein wenig mit den String-Funktionen vertraut zu machen falls noch nicht geschehen.

B4X:
Dim test as String
test = "Hallo Welt"
test.

In dem Moment wo Der letzte . eingegeben wird erscheinen ja mögliche anwendbare Funktionen die Du auf diesen String anwenden kannst.

Ich weiss ja nicht was genau Du vorhast... Beispieldaten oder gar Beispielprojekt mit Hinweis was genau nicht funktioniert oder wo es hakt könnten durchaus dabei behilflich zu sein damit andere Dir bei dem Problem helfen ;-)
 

Attachments

  • GetWebsiteTXT.zip
    7.5 KB · Views: 195
Last edited:

arautio

Member
Licensed User
Longtime User
Hallo, ich wollte von meiner Internetseite einen bestimmten beitrag als news anzeigen lassen,
dein Beispiel hat wunderbar funktioniert, auf meinen Server sind keine Textdateien.
ich teste und melde mich
kannst du mir evtl. sagen ob es eine funktioniert gibt die zurücktaste des handy, tablet mit in dem programm einzubeziehen.
Danke Andreas
 

arautio

Member
Licensed User
Longtime User
Hey hat funktioniert, ich habe mal ein textfile auf meinen Server gelegt und er hat sich die erste zeile geholt,
wie kann ich hier eine schleife programmieren, dass er alle zeilen einliest, in visual Basic wäre das kein Problem hier tu ich mir etwas schwer damit
Danke nochmals
 

BernhardS

Member
Licensed User
Longtime User
Download einer Datei aus dem Internet mit: Job1.Initialize("Job1", Me) und "Job1.Download(Url-Adresse)" am Besten im Service Modul , dazu brauchst du die HttpJob-Library!
Mit dem Event "Sub jobdone(job As HttpJob)" abfragen, ob die Datei fertig geladen wurde. Die Datei befindet sich in "File.DirInternalCache".
Anschließend kannst du mit einem TextReader (http://www.b4x.com/android/help/files.html#textreader) die Datei Zeile für Zeile auslesen lassen und gegebenfalls mit einer anderen Datei vergleichen.
 

arautio

Member
Licensed User
Longtime User
Hallo Danke erstmal,
habe beide Variationen angeschaut,
6-7 Sekunden warten bis die Seite angezeigt wird, ist das OK oder geht es noch schneller
 

DonManfred

Expert
Licensed User
Longtime User
Vermutlich ist es zu viel HTML was da übertragen wird. Oder der Quellserver ist nicht so schnell. Oder deine Internetleitung langsam...
Die Ursachen können unterschiedlich sein. Es wird wohl eine Kombination sein aus Geschwindigkeit, der übertragenen Menge an HTML-Code und die Zeit die dein Smartphone für diese Daten braucht um sie Dir nach dem download zur Verfügung zu stellen.

Aber sicher bin ich mir da auch nicht ob es das nicht auch schneller gibt. Ich bin auch noch recht neu bei B4A...
 
Top