Einstellungen

Einstellungen können in einer App so definiert werden, dass sie nur zur Laufzeit verwendet oder aber gespeichert und sitzungsübergreifend beibehalten werden. Sie können Benutzer- oder Systemumgebungsvariablen lesen, Umgebungsvariablen oder -eigenschaften während der Laufzeit festlegen oder Einstellungen in einer Datei speichern.

Umgebungsvariablen

Umgebungsvariablen können für den Benutzer oder das System definiert werden. Sie können vor der Ausführung der App festgelegt und dazu verwendet werden, ein alternatives App-Verhalten zu konfigurieren. Die Einstellung für die Umgebungsvariable LANG hat beispielsweise Einfluss darauf, welches Gebietsschema von Qt-Anwendungen verwendet wird.

Verwenden Sie AppFramework.environment.value(), um den Wert einer Umgebungsvariable in Ihrer App auszulesen.

Um die aktuelle Einstellung einer Umgebungsvariable zu überschreiben, verwenden Sie AppFramework.environment.setValue(). Diese Änderung bleibt während der Ausführung der App gültig.

PropertySet

PropertySet ist eine Komponente, mit der Sie Schlüsselwertpaare zur Verwendung in QML-Bindungen festlegen können. Diese Komponente ist besonders geeignet, wenn der Eigenschaftswert vor dem Starten der App nicht bekannt ist, sondern vielmehr während der Laufzeit festgelegt wird.

Weitere Informationen finden Sie in der API-Referenz zu PropertySet.

Einstellungsdatei

Einstellungen können in einer JSON-Datei gespeichert werden. Sie werden von der Komponente Settings geschrieben und gelesen.

Der Speicherort dieser JSON-Datei variiert je nach Betriebssystem und richtet sich auch danach, ob die App als eigenständige App erstellt oder mit AppRun bzw. AppStudio Player verwendet wird. In fast allen Fällen muss die Datei nicht bearbeitet werden. Möglicherweise ist es jedoch notwendig, sie zum Testen von Fehlern zu öffnen. Sie finden die Dateien in den folgenden Ordnern. Sie sind mit ihrer UUID in ArcGIS Online benannt:

  • Windows: C:\Users\YourUsername\ArcGIS\AppStudio\Settings
  • macOS und Ubuntu: ~\ArcGIS\AppStudio\Settings

Nach Erstellung einer App kann diese Einstellungsdatei je nach organisatorischen Informationen in der App und je nach Benutzerberechtigungen an einem der vier Standardspeicherorte erstellt werden. Es handelt sich um alternative Speicherorte. Sie können mit der booleschen Eigenschaft useFallbacks definieren, ob die App sie verwendet.

Definieren der Einstellungswerte in einer Datei

Einstellungen werden als Schlüsselwertpaare zugewiesen und gespeichert, die alle von Ihnen hinzugefügten Einstellungen darstellen. Wenn ein Schlüssel nicht vorhanden ist, kann entweder ein festgelegter Standardschlüssel oder ein vom Benutzer gewählter Schlüssel erstellt werden. Bei diesen Schlüsselwerten wird die Groß-/Kleinschreibung berücksichtigt. Verwenden Sie sie daher stets konsistent.

Die Komponente Settings unterstützt vier Wertetypen, die in unterschiedlichen Kontexten nützlich sein können. Die folgenden Beispiele zeigen typische Verwendungsmöglichkeiten der Werte.

Die grundlegenden Funktionen value und setValue sind für Zeichenfolgen bestimmt und können in den unterschiedlichsten Szenarien eingesetzt werden. In diesem Fall wird im folgenden Codebeispiel eine Methode zur Festlegung der URL eines Standardpfads festgelegt:

readonly property string defaultLibraryPath: "~/ArcGIS/Example App/Library"

Item {
    Component.onDestruction: {
        var paths = libraryTextField.text.trim();

        if (paths.length <= 0) {
            paths = defaultLibraryPath;
        }

            settings.setValue("libraryPaths", paths, defaultLibraryPath);
    }

    TextField {
        id: libraryTextField

        Layout.fillWidth: true

        text: defaultLibraryPath
    }
}

Die Funktion boolValue stellt "true" oder "false" bereit und eignet sich daher optimal für geschlossene Fragen ohne Abstufungen. Im folgenden Codebeispiel wird die Einstellung auf einen Switch angewendet. Hierdurch wird festgelegt, ob die Anwendung Anmeldedaten sitzungsübergreifend beibehält:

property bool staySignedIn: false

    Switch {
    checked: staySignedIn
    onCheckedChanged: {
        staySignedIn = true;
        settings.boolValue("staySignedIn", true);
    }
}

Die Komponente Settings bietet ebenfalls die Funktion numberValue zum Definieren einer Ganzzahl. Dies ist hilfreich für granulare Einstellungen wie die Größe oder für Szenarien, in denen zwischen unterschiedlichen Optionen gewählt werden muss. In der Komponente colorValue ist zudem die Funktion zum Speichern eines hexadezimalen Farbwertes verfügbar, der hauptsächlich zum Anpassen des App-Aussehens verwendet wird. Diese Funktionen speichern zwar unterschiedliche Wertetypen, sie verhalten sich aber genauso wie boolValue.