Eingegebene Daten auf Smartphone werden nicht gespeichert

Startseite Foren Deutsches LiveCode-Forum Eingegebene Daten auf Smartphone werden nicht gespeichert

Schlagwörter: ,

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #38938
      Manni
      Teilnehmer

        Hallo Leute,

        Ich habe eine simple APP konstruiert. Es gibt eine „Eingabe-Karte“ und eine
        „Anzeige-Karte“.

        Auf der Eingabe Karte wird der Inhalt eines Eingabefeldes per Button in ein
        Anzeigefeld auf der Eingabekarte übertragen.
        Mit einem 2. Button wird nunmehr der Inhalt dieses Anzeigefeld auf die Anzeige-Karte
        in einem Ausgabefeld ausgegeben und angezeigt.

        Die Sache funktioniert ohne Probleme.
        Wird das Projekt geschlossen (Save) und erneut auf gerufen, wird die Eingabe des letzten Standes angezeigt.
        Nach Übertragung als akp auf mein Smartphone funktioniert die Eingabe wie im Livecode System.
        Wird allerdings die APP am Smartphone beendet und erneut auf gerufen, sind alle Eingaben welche am Smartphone erfolgten, auf der Übertragungsmodus zurück gestellt. Die geänderten Eingaben und Werte am Telefon werden augenscheinlich nicht automatisch gespeichert.

        Was habe ich nicht beachtet ?
        Um die Sache ggf. doch in den Griff zubekommen habe ich im Projekt einen zusätzlichen Button „Werte speichern“ angelegt.
        Als Skript im Button:

        on mouseUp pMouseButton
        save stack „Untitled 1“ with newest format
        end mouseUp

        Leider bringt dieser Befehl auch keinen Erfolg. Nach Neustart auf dem Smartphone erscheint immer der Wert, mit welchem die APP hochgeladen wurde.

        Was ist zu tun?

        Grüße Manni

      • #38940
        Klaus Major
        Administrator

          Hi Manni,

          a. ist „Untitled 1“ Deine Runtime?
          b. Oder ein Stack, den Du mit „create stack“ erstellt hast?

          Wenn a.:
          Standalones können auf keiner Platform gespeichert werden.

          Wenn b.:
          Da es keinen „Speichern als…“ Dialog auf der mobilen Platform gibt, müsstest Du
          dem Stack zunächst einen Dateinamen zuweisen und dann speichern!

          ...
          set the filename of stack "Untitled 1" to "specialfoderpath("documents") & "/der_stack.livecode")
          save stack "Untitled 1"
          ## In Deinem eigenen Interesse gewöhn Dir an, aussagekräftige NAMEN zu vergeben!:-)
          ...

          specialfoderpath(„documents“) ist der einzige Ordner auf der mobilen Platform, in dem wir Schreibrechte haben!

          Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.

          Falls ich Dich falsch verstanden haben sollte, bitte genauer erklären.

          Gruß

          Klaus

        • #38941
          Klaus Major
          Administrator

            Hi Manni,

            a. ist „Untitled 1“ Deine Runtime?
            b. Oder ein Stack, den Du mit „create stack“ on-the-fly erstellt hast?

            Wenn a.:
            Standalones können auf keiner Platform gespeichert werden.

            Wenn b.:
            Da es keinen „Speichern als…“ Dialog auf der mobilen Platform gibt, müsstest Du
            dem Stack zunächst einen Dateinamen zuweisen und dann speichern!

            ...
            set the filename of stack "Untitled 1" to "specialfoderpath("documents") & "/der_stack.livecode")
            save stack "Untitled 1"
            ## In Deinem eigenen Interesse gewöhn Dir an, aussagekräftige NAMEN zu vergeben!:-)
            ...

            specialfoderpath(„documents“) ist der einzige Ordner auf der mobilen Platform, in dem wir Schreibrechte haben!

            Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.

            Falls ich Dich falsch verstanden haben sollte, bitte genauer erklären.

            Gruß

            Klaus

          • #38946
            Klaus Major
            Administrator

              Vielleicht nocb ein Hinweis hierzu:

              Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.

              Wenn ich Dich recht verstehe, handelt es sich um die zu speichernden Daten um den Inhalt eines Textfeldes. In dem Fall kannst Du so speichern:

              ...
              put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten
              put the text of fld "was auch immer aktuell ist" into url("file:" & tDaten)
              ...

              Dann beim Öffnen des Stacks/Standalone Daten einlesen, sofern vorhanden:

              ...
              ## checken, ob wir schon mal was gespeichert haben:
              put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten
              
              ## Yep, schon mal gespeichert, dann wieder einlesen:
              if there is a file tDaten then
                put url("file:" & tDaten) into fld "was auch immer aktuell ist" of cd X
              end if
              ...
            • #38948
              Manni
              Teilnehmer

                Hallo Klaus,

                Antwort zu deiner Frage a.) Der Strack ist nicht mit „create strack“ erstellt worden, und somit die Runtime.

                Um also „Untitled 1“ als meine Runtime speicherbar zu machen und das nach erneutem Aufruf der APP mit den geänderten Werten gearbeitet werden kann, wäre das Skript für den Speicherbutton also :

                set the filename of stack „Untitled 1“ to „specialfoderpath“ & save stack „Untitled 1“ ??

                Wenn das so funktioniert, tut sich für mich die nächste Hürde auf.

                Wie und in welcher Skriptform (als Button oder im Stack) werden dann die Daten im Ordner „specialfoderpath“ auf dem Smartphone wieder eingelesen ?

                Könntest Du mir ein Beispiel geben ?

                Mit bestem Dank
                Manni

              • #38949
                Klaus Major
                Administrator

                  Sorry, kleiner Typo, es muss heissen specialfoLderpath(„resources“) foLder mit L.

                  set the filename of stack „Untitled 1“ to „specialfoderpath“ & save stack „Untitled 1“ ??

                  Das geht leider gar nicht, da „Untitled 1“ nun in dem Sinne kein Stack mehr ist, sondern die eigentliche Exe/App!

                  Falls Du wirklich den Stack speichern möchtest, musst Du da ganz anders rangehen.
                  Lies dazu bitte meinen Artikel „Stacks speichern in Standalones“ hier:
                  https://www.livecode-blog.de/forums/topic/stacks-speichern-in-standalones/

                  Wie und in welcher Skriptform (als Button oder im Stack) werden dann die Daten im Ordner „specialfoLderpath“ auf dem Smartphone wieder eingelesen ?

                  Das passiert am besten:

                  on openstack
                    put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten
                  
                    ## Yep, schon mal gespeichert, dann wieder einlesen:
                    if there is a file tDaten then
                      put url("file:" & tDaten) into fld "was auch immer aktuell ist" of cd X
                    end if
                    ## Dein OPENSTACK Kram hier...
                    ## ...
                  end openstack
                • #38953
                  Manni
                  Teilnehmer

                    Hallo Klaus,
                    danke für die Informationen. Das ist eine menge Holz für Anfänger.
                    Ich habe nicht mit diesen Anforderungen an eine doch recht simple Funktion
                    in einer APP gerechnet.
                    Ich werde natürlich zuerst einmal deinen Artikel lesen und versuchen ihn zu verstehen.
                    Das braucht aber seine Zeit.
                    Nach Versuchen und Tests werde ich mich dann noch einmal melden.
                    Vorab bedanke ich mich und wünsche eine gute Zeit.
                    Grüße Manni

                  • #38954
                    Klaus Major
                    Administrator

                      Gern geschehen und gerne nachfragen!

                      Für die meisten Belange wird es wohl reichen, nur die Daten auf Platte
                      zu schreiben und später wieder einzulesen, wie ich oben erklärt habe.

                  Ansicht von 7 Antwort-Themen
                  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.