App API
Το AppAPI επιτρέπει στους χρήστες να φορτώνουν μεταδεδομένα συστήματος από την εφαρμογή χρησιμοποιώντας διαφορετικές μεθόδους στο FormEngine και DMView. Παρέχει πρόσβαση σε διάφορα κλειδιά δεδομένων για ανάκτηση συγκεκριμένων πληροφοριών από την εφαρμογή.
Στο xlsform, μπορείτε να χρησιμοποιήσετε τη συνάρτηση pulldata() με την ακόλουθη σύνταξη:
'app-api': Αυτή η λέξη-κλειδί ενημερώνει το FormEngine να φορτώσει τα δεδομένα από το App API.'data-key': Αυτό είναι το κλειδί των δεδομένων που θέλετε να φορτώσετε από το App API.- Εάν το κλειδί δεδομένων είναι μη έγκυρο ή δεν υποστηρίζεται, ο υπολογισμός θα επιστρέψει “n/a”.
Εδώ είναι τα υποστηριζόμενα κλειδιά δεδομένων που μπορείτε να χρησιμοποιήσετε με το App-API:
osPlatform: Επιστρέφει το τρέχον όνομα λειτουργικού συστήματος (Android ή iOS) και την έκδοση λειτουργικού συστήματος. Οι web πλατφόρμες θα επιστρέψουν κενή τιμή.
appPlatform: Επιστρέφει το όνομα πλατφόρμας εφαρμογής, που είναι rtSurvey.
appVersion: Επιστρέφει το όνομα έκδοσης της εφαρμογής.
getDisplayWidth: Επιστρέφει το πλάτος οθόνης συσκευής σε pixel.
getDisplayHeight: Επιστρέφει το ύψος οθόνης συσκευής σε pixel.
getScreenSize: Επιστρέφει το μέγεθος οθόνης συσκευής σε ίντσες.
projectCode: Επιστρέφει τον τρέχοντα κωδικό έργου της ιστοσελίδας στην οποία συνδέεται ο χρήστης.
projectURL: Επιστρέφει το τρέχον URL έργου της ιστοσελίδας στην οποία συνδέεται ο χρήστης. Η προεπιλεγμένη/εναλλακτική τιμή είναι κενό κείμενο ("").
startingPoint: Επιστρέφει το μονοπάτι του σημείου που ξεκινά τη φόρμα.
serverTime: Επιστρέφει την καλύτερη διαθέσιμη προσέγγιση της ημερομηνίας και ώρας στον server.
user.[attribute]: Επιστρέφει τα τρέχοντα χαρακτηριστικά χρήστη βάσει του καθορισμένου κλειδιού χαρακτηριστικού. Ανατρέξτε στον πίνακα “Χαρακτηριστικά χρήστη” για τα διαθέσιμα κλειδιά χαρακτηριστικών.
Συνδυάστε τα παρακάτω κλειδιά χαρακτηριστικών με “user.” στις παραμέτρους pulldata() για ανάκτηση τρέχουσας πληροφορίας χρήστη. Για παράδειγμα, χρησιμοποιήστε user.username, user.email, κ.λπ.
| Κλειδί χαρακτηριστικού | Περιγραφή |
|---|---|
| username | Όνομα χρήστη του χρήστη |
| name | Πλήρες όνομα του χρήστη |
| staffCode | Κωδικός προσωπικού του χρήστη |
| phone | Αριθμός τηλεφώνου του χρήστη |
| Διεύθυνση email του χρήστη | |
| description | Κείμενο περιγραφής στις πληροφορίες χρήστη |
| organization_id | Αναγνωριστικό οργανισμού στον οποίο ανήκει ο χρήστης |
| organization_name | Όνομα οργανισμού στον οποίο ανήκει ο χρήστης |
| team_id | Αναγνωριστικό ομάδας στην οποία ανήκει ο χρήστης |
| supervisor_id | Αναγνωριστικό επόπτη του χρήστη |
| is_supervisor | 1 εάν ο χρήστης είναι επόπτης, 0 εάν όχι |
instancePath: Επιστρέφει το τρέχον μονοπάτι φακέλου instance.
appLanguage: Επιστρέφει την τρέχουσα γλώσσα εφαρμογής που έχει οριστεί στις ρυθμίσεις της εφαρμογής (π.χ. vi, en).
openArgs.[attribute]: Επιστρέφει το open-form-argument που περνά από το ActionButton (act_fill_form, act_get_instance). Η προεπιλεγμένη/εναλλακτική τιμή είναι κενό κείμενο ("").
primaryAppColor: Ανακτά το κύριο χρώμα της εφαρμογής.
Παραδείγματα χρήσης
Αποθήκευση ονόματος χρήστη και οργανισμού απογραφέα
| type | name | label | calculation |
|---|---|---|---|
| calculate | enumerator_name | pulldata('app-api', 'user.name') | |
| calculate | enumerator_org | pulldata('app-api', 'user.organization_name') | |
| calculate | enumerator_email | pulldata('app-api', 'user.email') |
Χρησιμοποιήστε σε ετικέτες note για σκοπούς ελέγχου:
note | interviewer_info | Συνεντευκτής: ${enumerator_name} (${enumerator_org})
Πληροφορίες συσκευής και οθόνης
| type | name | label | calculation |
|---|---|---|---|
| calculate | device_platform | pulldata('app-api', 'osPlatform') | |
| calculate | app_ver | pulldata('app-api', 'appVersion') | |
| calculate | screen_w | pulldata('app-api', 'getDisplayWidth') |
Χρήσιμο για αντιμετώπιση προβλημάτων: εξάγετε device_platform και app_ver μαζί με τα δεδομένα σας.
Ώρα server αντί ώρας συσκευής
Τα ρολόγια συσκευών μπορεί να είναι λανθασμένα. Χρησιμοποιήστε serverTime για πιο αξιόπιστη χρονική σφραγίδα:
| type | name | label | calculation |
|---|---|---|---|
| calculate | server_ts | pulldata('app-api', 'serverTime') |
Υπό συνθήκη λογική βάσει ρόλου χρήστη
Εμφάνιση ενότητας μόνο για επόπτες:
| type | name | label | relevant |
|---|---|---|---|
| calculate | is_supervisor | pulldata('app-api', 'user.is_supervisor') | |
| begin_group | supervisor_section | Αναθεώρηση επόπτη | ${is_supervisor} = '1' |
| text | supervisor_notes | Σημειώσεις επόπτη | |
| end_group |
Μεταφορά ορισμάτων από κουμπί ενέργειας
Όταν η φόρμα εκκινείται από κουμπί ενέργειας act_fill_form με προσαρμοσμένα ορίσματα:
| type | name | label | calculation |
|---|---|---|---|
| calculate | passed_hh_id | pulldata('app-api', 'openArgs.household_id') | |
| calculate | passed_task | pulldata('app-api', 'openArgs.task_code') |
Χρήση πληροφοριών έργου
| type | name | label | calculation |
|---|---|---|---|
| calculate | project | pulldata('app-api', 'projectCode') | |
| calculate | project_url | pulldata('app-api', 'projectURL') |
Σημειώσεις
- Όλες οι κλήσεις
pulldata('app-api', ...)αξιολογούνται όταν ανοίγει η φόρμα και δεν επαναξιολογούνται δυναμικά κατά τη διάρκεια της συνεδρίας (εκτός απόserverTimeκαιnow()). - Εάν ένα κλειδί δεν υποστηρίζεται ή τα δεδομένα δεν είναι διαθέσιμα, η συνάρτηση επιστρέφει
'n/a'(όχι κενή συμβολοσειρά — ελέγξτε με!= 'n/a'αντί!= ''). - Οι τιμές
openArgsείναι διαθέσιμες μόνο όταν η φόρμα εκκινείται από κουμπί ενέργειας· επιστρέφουν κενή συμβολοσειρά διαφορετικά.