Antwort auf: App funktioniert in Simulation auf Mobile nicht

Startseite Foren Deutsches LiveCode-Forum App funktioniert in Simulation auf Mobile nicht Antwort auf: App funktioniert in Simulation auf Mobile nicht

#14741
Klaus Major
Administrator

    Hallo Gerti/Heike (wat denn nu? 🙂 ),

    eine Bitte, nachdem du hier ein Skript eingefügt hast, bitte das Skript noch einmal auswählen und mit CODE Tags versehen = klick auf den Button CODE über dem Eingabefeld. Dann bleibt die formatierung erhalten und man und frau können das besser lesen.

    Ja, da haben wir den Fehler schon gefunden.
    Mach bitte Folgendes:
    1. Kopiere oder verschiebe die DB Datei(en) in den Ordner mit dem Stack
    2. Dann öffne die “Stanalone Application Settings…” (Menü: Edit)
    3. Dort bei “Copy files” diese Datei auswählen
    4. Dann wird sie der Standalone hinzugefügt und Du findest sie im -> specialfolderpath(“resources”) in der Standalone.
    Allerdings haben wir in dem Ordner keine Schreibrechte, das Oeffnen der DB wird schon als Schreiben angesehen, daher müssen wir sie in den -> specialfolderpath(“documents”) kopieren beim ersten Start der App und dort öffnen.

    Das geht so:

    on openstack
       
       ## Hier legt LC sie ab...
       put specialFolderPath("resources") & "/testsqlite.sqlite" into tQuellDB
       
       ## ... aber nur hier dürfen wir sie benutzen
       put specialFolderPath("documents") & "/testsqlite.sqlite" tZielDB
       
       ## Datei noch nicht vorhanden, muss der allererste Start der App sein.
       ## Dann also die DB in den Ordner kopieren, wo wir schreiben dürfen:
       if there is NOT a file tZielDB then
          put url("binfile:" & tQuellDB) into url("binfile:" & tZielDB)
       end if
       
       ## Dein openstack Kram hier, sofern vorhanden...
       ## ...
    end openstack

    Logisch, oder?

    Nun kannst Du sie in Deinen Skripten (Standalone UND IDE) so ansprechen:

    ...
    ## Wir sind auf dem Handy:
    if the environment = "mobile"
      put specialfolderpath("documents") & "/testsqlite.sqlite" into die_datenbank
    else
      ## Wir sind in der IDE:
      put specialfolderpath("resources") & "/testsqlite.sqlite" into die_datenbank
    end if
    put revOpenDatabase("sqlite", die_datenbank, , , , ) into dbid
    ...

    Hinweis:
    Intern nutzt LC auf JEDER Platform den SLASH / als Dateipfadtrenner
    Nur Windows nutzt den Backslash \
    Daher solltest du bei Dateipfaden den auch immmer nutzen, auch unter Windows:
    -> C:/Users/Winternet/Documents/MyLiveCode/testsqlite.sqlite
    So musst du nicht verschiedene Schreibweisen benutzen, wenn du mal was für iOS, Mac oder auch Android programmieren willst/musst!

    Gruß

    Klaus