Startseite › Foren › Deutsches LiveCode-Forum › Funktioniert Upload unter Android in der Community Version?
Schlagwörter: Community Edition, FTP Upload
- Dieses Thema hat 17 Antworten und 5 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahren, 1 Monat von Axwald.
-
AutorBeiträge
-
-
August 10, 2019 um 10:03 Uhr #16009
Hallo Leute,
hat jemand es geschafft, mit der COMMUNITY EDITION von LiveCode eine ANDROID-App zu programmieren, mit der ein File erfolgreich per FTP ins Web upzuloaden ist?
Nach endlosen Recherchen ist mir dieses immer noch nicht gelungen. Mein Stand ist folgender: während die Windowsversion meiner App anstandslos läuft, erzeugt der FTP-Upload aus der Android-App immer nur eine leere Datei!
Weiß jemand, ob der Upload wieder nur ab INDY-Version möglich st? -
August 10, 2019 um 11:13 Uhr #16011
Hatte Torsten vor einiger Zeit nicht etwas herausfinden können?
Selbes Problem
Ganz unten. -
August 10, 2019 um 23:59 Uhr #16021
Hallo Klaus,
leider hat das auch nicht funktioniert. Es ist immer dassebe: Windows-App funktioniert perfekt,
Android Version erzeugt nur eine leere Datei. Daher meine Frage: Funktioniert Upload unter Android in der Community Version? Es wäre sehr schade, wenn ein Upload genau wie das Versenden von E-Mails direkt aus der App heraus hier nicht möglich wäre, weil die aufgerufenen Lizenzgebühren für Hobbyprogrammierer einfach zu hoch sind und sich LiveCode damit für sehr viele Freizeitprogrammierer disqualifiziert………Viele Grüße
Peter -
August 13, 2019 um 22:57 Uhr #16050
Hallo Peter
Ja, so ist das!
Hatte lange Zeit die gleichen Probleme und hab mir dann die Indy Version gekauft und dann hat es funktioniert.Gruß Volker
-
August 14, 2019 um 15:09 Uhr #16055
Die INDY Version nutzt ein External namen “tsNet”, die Community Version nur eine gescriptete Library “libURL”, die aber auch bei einem einfachen FTP Upload funktionieren sollte.
Es handelt sich nicht zufällig um einen SFTP Server bei Dir?
-
August 16, 2019 um 10:47 Uhr #16084
Hallo Volker,
vielen Dank für deine Antwort. Meine Frage: Was hast du für die INDY Version bezahlt? Hast du sie tatsächlich
gekauft oder musst du jährlich Abogebühren zahlen?Viele Grüße
Peter -
August 16, 2019 um 12:42 Uhr #16087
Hallo Klaus,
ich habe intensiv auch im englischen Forum nach funktionierenden Codes recherechiert und alles ausprobiert, leider ohne Erfolg.
Laut Dictionary sollte ftp allerdings auch in der Community-Version als Android-Standalone funktionieren können. Ich habe deswegen heute eine E-Mail direkt zum Support der Herstellerfirma geschickt und bin sehr gespannt auf die Antwort. Sollte sich hier wider Erwarten eine kostenfreie Lösung ergeben, dürfte sie von allgemeinem Interesse sein, und ich würde sie hier im Blog posten.Viele Grüße
Peter
-
August 22, 2019 um 15:38 Uhr #16153
Hallo,
hab mich extra hierfür angemeldet 🙂
Ich glaube es wurde schon mal im int. Forum behandelt, aber es geht definitiv!Hier: LC 6.7.10 Community (= Stable!) auf Win10,
Android 6 (Yoga Tablet 3 850L), und ein FTP-Server bei AllInkl.Ein Button:
on mouseUp -- Zugangsdaten abfragen, ggf. gleich hier einsetzen: -- ask question "The FTP-Username:" with "DeinUserName" titled "Credentials:" if it is not empty then put URLENCODE(it) into MyUSR -- URLEncode für Sonderzeichen ... else exit mouseUp end if ask question "The FTP-Password" with "DeinPassWord" titled "Credentials:" if it is not empty then put URLENCODE(it) into MyPWR -- URLEncode für Sonderzeichen ... else exit mouseUp end if ask question "Die FTP-URL:" & CR & "( Ohne Slash am Ende!)" with "theUrl.com" titled "Credentials:" if it is not empty then put it into MyURL else exit mouseUp end if -- URL zusammenbauen: -- if char -1 of myURL <> slash then put slash after myURL put "ftp://" & myUSR & ":" & MyPWR & "@" & MyURL into myFTPDir answer information "Ich versuche jetzt, dahin hochzuladen:" & CR & \ myFTPDir & CR & CR & "Sollte so aussehen: " & CR & "ftp://UserName:PassWord@Url.com/" titled "Bitte prüfen!" -- Eindeutigen Dateinamen erzeugen: -- get the date && the long time convert it to dateitems -- 2017,7,27,13,44,55,5 set itemdel to comma delete item 7 of it repeat for each item myItem in it put format("%02s",myItem) after myFileName end repeat -- => 20170727134455 -- Und ab auf den FTP: -- put the long system date & CR & the long system time into URL (myFTPDir & myFileName & ".txt") -- To FTP! answer information "Hochgeladen: " & myFileName & ".txt! Result:" & CR & the result end mouseUp
Also bei mir gehts – grade auf dem Tablet getestet.
Ich weiß jetzt nicht, ob das bei neueren Android-Versionen genauso geht, aber wieso sollte es nicht?
Ich weiß auch nicht, wie es bei neueren LC-Versionen aussieht – jedesmal wenn ich mich aufraffe, doch wieder mal eine neue “Stable” auszuprobieren, sind sie elend langsam & stürzen nach kurzem ab :/Hoffentlich kann man es lesen, der Editor hier ist gewöhnungsbedürftig 😉
Viel Spaß!
-
-
August 24, 2019 um 04:25 Uhr #16164
Hallo Axwald,
Herzlichen Dank für deinen Code. Ich wedde ihn gleich ausprobieren, befürchte aber, dass der Hersteller von LiveCode die Up- und Downloadfunktionen unter Android bei der Community-Edituon 9.5 deaktiviert hat. Kann man deine Version 6.7.10 jetzt noch downloaden?
Viele Grüße
Peter -
August 24, 2019 um 08:31 Uhr #16173
Hallo Axwald,
deinen Code habe ich jetzt ausprobiert, leider ohne Erfolg. Es scheint so, als ob in der Version 9.5 die Up- und Download- funktionalität in der Community-Version abgeschaltet worden wäre. Gibt es eine Möglichkeit, die Version 6.7.10 noch downzuloaden?
Gruß
Peter -
August 24, 2019 um 08:53 Uhr #16175
Sorry, dumme Frage! Habe den Download gefunden…
Werde mir livecode 6.7.10 jetzt runterladen und ausprobieren…
Danke an Alle! -
September 3, 2019 um 19:22 Uhr #16230
Hallo
Habe mich lange mit dem Problem im letzten Winter rumgeschlagen.
Bin zu folgenden Ergebnis gekommen:
Um einen Upload machen zu können muß die Datei mind. 10.000 Byte Groß sein (warum auch immer?). Dann
funktioniert auch der upload. Fülle meine Dateien zusätzlich mit Nullen auf damit ich über die 10.000 Byte komme. Damit habe ich bisher keine Probleme mehr.
Gruß Günter -
September 7, 2019 um 16:22 Uhr #16284
Hallo,
ich habe jetzt mal meine “mobilen Stacks” durchgeschaut, und meine damaligen Notizen rekapituliert (deswegen hat es so lange gedauert …).
Das bezieht sich jetzt alles auf Apps unter Android, erstellt mit LC Community 6.7.10; aber auch die Community 9.5 benutzt die LibURL, und da hat sich m.E. eh nix getan:1. “put URL [Local_FilePath] into URL [FTP_FilePath]” klappt nicht, auch nicht mit “file:” / “binfile.” Mit “revCopyFile” hatte ich auch kein Glück, ebenso nicht mit “libURLftpUploadFile”.
2. Eine Datei auf dem FTP erstellen & was ‘reinschreiben geht:
put the system date & CR & the system time into URL ("ftp://username:password@myDomain.org/myFolder/myFile.txt")
(Hmm, sollte 1 Zeile sein …)Damit kann ich jetzt aber auch Dateien übertragen:
get URL ("file:" & "/data/data/com.axwald.myApp/files/myFile.txt) put it into URL ("ftp://username:password@myDomain.org/myFolder/myFile.txt")
(den lokalen Pfad baue ich mit:
“specialFolderPath(“documents”) & slash & [filename]”)Hoffe das hilft.
-
September 8, 2019 um 13:36 Uhr #16292
Hallo Axwald,
vielen Dank für deinen Post. Zwischendurch hatte ich mir schon Live Code 6.7.1 installiert und bei Oeffnung meines Stacks die Fehlermeldung erhalten: Opening Not possible, stack was produced by a newer version! Lief LiveCode 6.7.1 bereits unter Java JDK 8 ? Brauche ich für 6.7.1 auch eine Vorversion vom Android SDK? Ich werde auf deinen Post hin noch einmal einen neuen Anlauf nehmen und dir dann berichten. Alternativ habe ich mir heute die Indy Trialversion installiert und stehe schon wieder vor dem nächsten Problem: die Umwandlung meines Stacks in die Standalone APK mündet in der Fehlermeldung:There was an error while saving the Standalone application: apk preparation failed 🙁
Gruß
Peter-
September 9, 2019 um 13:58 Uhr #16308
Hallo,
> Opening Not possible, stack was produced by a newer version!
Livecode hat (in der 7er Version, dann nochmal in der 8er) das Dateiformat für “.livecode”/ “.rev” geändert.Die Meldung kriegst Du, wenn Du mit einer “alten Version” einen “neuen Stack” öffnen willst,
Abhilfe: Stack mit neuer Version öffnen, “Speichern unter …”, Dateiformat “Legacy LiveCode Stack (5.5)” auswählen 😉Achtung, die neuen Versionen konvertieren einen alten Stack auch manchmal, wenn nicht gespeichert wurde! Also Vorsicht!
> Lief LiveCode 6.7.1 bereits unter Java JDK 8 ?
> Brauche ich für 6.7.1 auch eine Vorversion vom Android SDK?
Die Android-Unterstützung von LiveCode ist recht halbherzig (wie auch die von allem anderen, solange kein Apfel ‘draufklebt …). Aber Java 8 geht auch mit 6.7.10.
Generell ist es recht fricklig, eine funktionierende Umgebung für Android aufzusetzen. Und recht einfach, sich eine solche wieder zu zerschießen …Ich benutze Java 8 (“jdk-8u144-windows-x64”) und das Android SDK 24 (“Android SDK installer_r24.4.1-windows”).
Installiert sind SDK tools 24.1.1, Platform tools 25.0.4, Build-tools 25, sowie die SDK platforms 2.1 (API 7), 2.2 (API 8), 4.0.3 (API 15, mit ARM system image) (diese platforms sind Pflicht), und dann die 5.0.1 (API 21, mit ARM system image), für die ich kompiliere (mit LC 6.7.10).LC 9.5 will damit nicht arbeiten, es erwartet zumindest die SDK platform 9.0 (API 28). Und tatsächlich ist letzte Woche ein erstes Gerät mit Android 9 beim Kunden aufgetaucht 😉
Meine beschriebene Entwicklungsumgebung rühre jetzt ich nicht an – mit der muß ich regelmäßig Updates kompilieren, davon lebe ich.Aber ich habe einen anderen Rechner, auf dem, bei identischer Konfiguration, die 6.7.10 nie kompiliert hat (“could not compile application class” – der Standard-Fehler). Da habe ich nun die SDK platform 9.0 (API 28) geladen, sowie SDK tools, Platform tools und Build-tools auf den aktuellen Stand gebracht.
Und mit LC 9.5 erfolgreich eine Android 9-Version kompiliert 🙂Während ich das hier schreibe, kommt mir ein Gedanke: RDP auf o.a. Maschine, LC 6.7.10 gestartet, leeren Stack angelegt, für Android 5 kompiliert: Jetzt geht’s auf einmal!
Man sieht, kompilieren mit LiveCode, für Android, kann recht mühsam sein.
Viel Spaß!
-
-
September 9, 2019 um 02:11 Uhr #16294
Hallo Günter,
vielen Dank für deinen sehr interessanten Tipp. Das werde ich gleich ausprobieren. Nutzt du auch die Community Edition, wenn ja welche Version? Das Merkwürdige ist ja, dass alle Probleme mit dem Upload erst nach dem Kompilieren, und zwar ohne jegliche Fehlermeldung auftreten. In der Programmierumgebung funktioniert alles wunderbar, selbst mit kleinsten Dateien….
Gruß Peter -
September 9, 2019 um 19:18 Uhr #16310
Hallo Peter
Ich benutze die Community Edition 9.0.2.
Bei mir geht auch alles in der Programmierumgebung und auch in der kompilierten Windowsversion. Nur in der Adroidversion auf dem Handy hatte ich halt diese Probleme.
Gruß Günter -
September 10, 2019 um 10:06 Uhr #16314
Mysteriös.
Ich hatte neulich mal den Fall, daß meine erzeugten .APK’s aus irgendeinem Grund kein Internet konnten. Nach Neu-Installation von LC gings wieder.
Zum Testen, ob die App Internetzugriff hat, baue ich immer irgendwo eine Funktion ein, die die externe IP ermittelt:
answer "Die externe IP ist:" & CR & CR & URL "https://api.ipify.org"
Gut, ich benutze statt ‘ipify’ ein PHP-Script auf der jeweiligen Kundenseite:<?PHP function getUserIP() // service script awa; don't change! { $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif(filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $user_ip = getUserIP(); echo $user_ip; // Output IP address [Ex: 177.87.193.134] ?>
Damit sieht der Anwender, ob der für ihn relevante Server auch da ist 😉 (Und ipify ist nicht besonders schnell …)
Ansonsten, was fällt mir noch ein?
1. Android ist ein Linux, und als solches case-sensitive bei Dateinamen. Groß-/Kleinschreibung beachten!
2. Manche Router bieten für den WLAN-Gastzugang (der oft von Mobil-Teilen genutzt wird) die Option “Nur Surfen und EMail erlauben” – böse Falle! Dann geht nämlich der Datenbankzugriff nicht – und möglicherweise FTP auch nicht :/
Auch “Internet-Sicherheits”-Appliances div. Schlangenöl-Händler sind schon unangenehm aufgefallen.3. “URL mobil” ist nicht das Gleiche wie “URL aufm Desktop” (aus dem Dictionary, Keywort “URL”):
The iOS and Android engines do not support ‘libUrl’ but allow you to use URL. When specifying URLs for iOS and Android, you must use the appropriate form that confirms to the RFC standards. Ensure that you urlEncode any username and password fields appropriately for FTP urls.
Important! The space character is not valid in URLs, however libURL (Desktop platforms) replaces this character with the required ‘%20’. This is something that the mobile and server platforms do not do. Be careful to construct valid URLs when working an fully cross platform applications.
Ich hoffe, da war etwas nützliches dabei. Viel Spaß!
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.