Beim ersten starten

Startseite Foren Deutsches LiveCode-Forum Beim ersten starten

Schlagwörter: , , ,

Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #18816
      BestRazer
      Teilnehmer

        Hallo,

        gibt es eine Möglichkeit einen Befehl in einer App nur beim ersten starten der App ausgeführt wird? Oder allgemein, dass wenn ich zum Beispiel in meiner App den Dark Mode anschalte, er beim nächsten starten immer noch an ist?

        LG Arthur

      • #18830
        Torsten
        Teilnehmer

          Hi Arthur,

          das kommt darauf an, ob du einen Stack oder eine Standalone startest. Bei einem Stack könntest Du den Modus einfach in einer Property setzen und dann den Stack abspeichern.
          Beim Standalone ohne Starter- oder externe Substacks muss diese Information in einer extra Datei gespeichert werden, die dann bein Start als erstes ausgelesen wird.

          Schau Dir mal den Thread an, da gehts genau darum: https://www.livecode-blog.de/forums/topic/variable-in-app-nach-beendigung-speichern/

          LG
          Torsten

        • #18837
          Klaus Major
          Administrator

            Nicht immer so kompliziert denken! Wie machen es vergessliche Leute?
            Und eine Runtime IST vergesslich, das sag ich Dir! 🙂

            Genau, sie schreiben kleine Zettelchen und legen sie an sichtbarer Stelle hin.
            Genau so machst Du es mit der Runtime auch:

            on openstack
            ## oder preopenstack oder wann auch immer:
              put specialfolderpath("documents") & "/war_ich_schon_mal_hier.txt" into merkzettel
              if there is NOT a file merkzettel then
                 ## Das ist der erste Start Deiner App,
                 ## mach Dein Ding jezt hier und danach aber nicht vergessen:
                 put "Ja" into url("file:" & merkzettel)
              end if
            end openstack

            Logik klar? Denke schon. 🙂

            Gruß

            Klaus

          • #19578
            BestRazer
            Teilnehmer

              Vielen dank für ihre Antworten.
              Jetzt habe ich allerdings das Problem, dass ich den Befehl

              on pushNotificationRegistered pMessage
                 answer "Registered:" && quote & pMessage & quote with "Okay"
                 revMail "meine@e-mail-adresse",, "token",pMessage
              end pushNotificationRegistered

              nur beim ersten Starten ausführen möchte. Das geht leider nicht mit ihren Vorschlägen (glaube ich zumindest).
              Gibt es dafür auch eine Möglichkeit?

              Vielen Dank,

              Arthur

            • #19579
              Klaus Major
              Administrator

                Hallo Artur,

                na, genau so, wie in meinem letzten Posting!
                Aber nun halt nicht bei “openstack” sondern in Deinem “pushNotificationRegistered” Handler.

                Offenbar war die dahintersteckende Logik doch nicht klar…

                Gruß

                Klaus

                • #19585
                  BestRazer
                  Teilnehmer

                    Vielen, vielen dank!
                    Dank ihnen muss ich jetzt nicht mehr eine extra App verteilen um Benachrichtigungen verwenden zu können!

                • #22601
                  pitschi67
                  Teilnehmer

                    Hallo,
                    ich bin Frischling und habe gerade meine erste App geschrieben.
                    Nun zu meiner Frage:
                    Ich habe eine Android APP erstellt, in der der Anwender einige Textfelder und Combo Box Menüs deren Werte ändern kann.
                    Diese vom Anwender eingestellten/veränderten Werte, sollen auf dem Handy gespeichert werden.
                    Beim Neustart der APP sollen die veränderten Werte dann angezeigt werden.

                    Meine App besteht aus einem Stack und 4 Cards.
                    Ich habe auf jeder Card einen Button, der die geänderten Werte beim betätigen speichern soll.
                    Allerdings bekomme ich kein Skript hin, welches mir die Speicherung ermöglicht.

                    Vielleicht hat wer einen Tipp für mich.


                    @Thorsten
                    . “Bei einem Stack könntest Du den Modus einfach in einer Property setzen und dann den Stack abspeichern”
                    Was meinst du damit?

                    Sorry ich bin kein Programmierer 😉

                  • #22604
                    Klaus Major
                    Administrator

                      Der Grundtenor zu Deinem Problem ist, Du musst alles in einem Ordner speichern, in dem wir Schreibrechte haben, und bei Bedarf diese Info wieder einlesen.

                      Beispiel, Du hast ein Textfeld, das Dein User mit Text füllt, den Du speichern und wieder einlesen möchtst. Speichern:

                      ...
                      put the text of fld "das textfeld hier soll gespeichert werden" into tText
                      
                      ## Auf der mobilen Platform dürfen wir nur im DOKUMENTEN Ordner des Users schreiben.
                      ## Dateinmane zusammenbasteln:
                      put specialfolderpath("documents") & "/dein_text_hier.txt" into tDatei
                      
                      ## Nun die Varibale (= Feldinhalt) wegschreiben:
                      put tText into url("file:" & tDatei)
                      ## Fertig!
                      ...

                      Wieder einlesen, eventuell bei PRE- oder OPENSTACK, oder wann es halt Zeit dafür ist:

                      ...
                      ## Dateinmane zusammenbasteln:
                      put specialfolderpath("documents") & "/dein_text_hier.txt" into tDatei
                      
                      ## Zunächst checken, ob wir das schon einmal gespeichert haben:
                      if there is a file tDatei then
                        put url("file:" & tDatei) into tText
                      else
                      
                        ## Falls nicht, leeren wir das Feld einfach:
                        put EMPTY into tText
                      end if
                      put tText into fld "das textfeld hier soll gespeichert werden" 
                      ...
                  Ansicht von 6 Antwort-Themen
                  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.