Το 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Διεύθυνση email του χρήστη
descriptionΚείμενο περιγραφής στις πληροφορίες χρήστη
organization_idΑναγνωριστικό οργανισμού στον οποίο ανήκει ο χρήστης
organization_nameΌνομα οργανισμού στον οποίο ανήκει ο χρήστης
team_idΑναγνωριστικό ομάδας στην οποία ανήκει ο χρήστης
supervisor_idΑναγνωριστικό επόπτη του χρήστη
is_supervisor1 εάν ο χρήστης είναι επόπτης, 0 εάν όχι

instancePath: Επιστρέφει το τρέχον μονοπάτι φακέλου instance.

appLanguage: Επιστρέφει την τρέχουσα γλώσσα εφαρμογής που έχει οριστεί στις ρυθμίσεις της εφαρμογής (π.χ. vi, en).

openArgs.[attribute]: Επιστρέφει το open-form-argument που περνά από το ActionButton (act_fill_form, act_get_instance). Η προεπιλεγμένη/εναλλακτική τιμή είναι κενό κείμενο ("").

primaryAppColor: Ανακτά το κύριο χρώμα της εφαρμογής.


Παραδείγματα χρήσης

Αποθήκευση ονόματος χρήστη και οργανισμού απογραφέα

typenamelabelcalculation
calculateenumerator_namepulldata('app-api', 'user.name')
calculateenumerator_orgpulldata('app-api', 'user.organization_name')
calculateenumerator_emailpulldata('app-api', 'user.email')

Χρησιμοποιήστε σε ετικέτες note για σκοπούς ελέγχου:

  note | interviewer_info | Συνεντευκτής: ${enumerator_name} (${enumerator_org})
  

Πληροφορίες συσκευής και οθόνης

typenamelabelcalculation
calculatedevice_platformpulldata('app-api', 'osPlatform')
calculateapp_verpulldata('app-api', 'appVersion')
calculatescreen_wpulldata('app-api', 'getDisplayWidth')

Χρήσιμο για αντιμετώπιση προβλημάτων: εξάγετε device_platform και app_ver μαζί με τα δεδομένα σας.

Ώρα server αντί ώρας συσκευής

Τα ρολόγια συσκευών μπορεί να είναι λανθασμένα. Χρησιμοποιήστε serverTime για πιο αξιόπιστη χρονική σφραγίδα:

typenamelabelcalculation
calculateserver_tspulldata('app-api', 'serverTime')

Υπό συνθήκη λογική βάσει ρόλου χρήστη

Εμφάνιση ενότητας μόνο για επόπτες:

typenamelabelrelevant
calculateis_supervisorpulldata('app-api', 'user.is_supervisor')
begin_groupsupervisor_sectionΑναθεώρηση επόπτη${is_supervisor} = '1'
textsupervisor_notesΣημειώσεις επόπτη
end_group

Μεταφορά ορισμάτων από κουμπί ενέργειας

Όταν η φόρμα εκκινείται από κουμπί ενέργειας act_fill_form με προσαρμοσμένα ορίσματα:

typenamelabelcalculation
calculatepassed_hh_idpulldata('app-api', 'openArgs.household_id')
calculatepassed_taskpulldata('app-api', 'openArgs.task_code')

Χρήση πληροφοριών έργου

typenamelabelcalculation
calculateprojectpulldata('app-api', 'projectCode')
calculateproject_urlpulldata('app-api', 'projectURL')

Σημειώσεις

  • Όλες οι κλήσεις pulldata('app-api', ...) αξιολογούνται όταν ανοίγει η φόρμα και δεν επαναξιολογούνται δυναμικά κατά τη διάρκεια της συνεδρίας (εκτός από serverTime και now()).
  • Εάν ένα κλειδί δεν υποστηρίζεται ή τα δεδομένα δεν είναι διαθέσιμα, η συνάρτηση επιστρέφει 'n/a' (όχι κενή συμβολοσειρά — ελέγξτε με != 'n/a' αντί != '').
  • Οι τιμές openArgs είναι διαθέσιμες μόνο όταν η φόρμα εκκινείται από κουμπί ενέργειας· επιστρέφουν κενή συμβολοσειρά διαφορετικά.
Ήταν χρήσιμη αυτή η σελίδα;