App API
AppAPI дозволяє користувачам завантажувати системні метадані з додатку за допомогою різних методів у FormEngine та DMView. Він надає доступ до різних ключів даних для отримання конкретної інформації з додатку.
У xlsform ви можете використовувати функцію pulldata() з таким синтаксисом:
'app-api': Це ключове слово повідомляє FormEngine про необхідність завантаження даних з App API.'data-key': Це ключ даних, які ви хочете завантажити з App API.- Якщо ключ даних недійсний або не підтримується, обчислення поверне “n/a”.
Ось підтримувані ключі даних, які можна використовувати з App-API:
osPlatform: Повертає поточну назву ОС (Android або iOS) та версію ОС. Веб-платформи повертатимуть порожнє значення.
appPlatform: Повертає назву платформи додатку, яка є rtSurvey.
appVersion: Повертає назву версії додатку.
getDisplayWidth: Повертає ширину екрана пристрою в пікселях.
getDisplayHeight: Повертає висоту екрана пристрою в пікселях.
getScreenSize: Повертає розмір екрана пристрою в дюймах.
projectCode: Повертає поточний код проекту сайту, до якого входить користувач.
projectURL: Повертає поточний URL проекту сайту, до якого входить користувач. Значення за замовчуванням/резервне — порожній текст ("").
startingPoint: Повертає шлях до точки, з якої починається форма.
serverTime: Повертає найкраще доступне наближення дати та часу на сервері.
user.[attribute]: Повертає атрибути поточного користувача на основі вказаного ключа атрибута.
Комбінуйте наведені нижче ключі атрибутів з “user.” у параметрах pulldata() для отримання інформації про поточного користувача:
| Ключ атрибута | Опис |
|---|---|
| username | Ім’я користувача |
| name | Повне ім’я користувача |
| staffCode | Код персоналу користувача |
| phone | Номер телефону користувача |
| Адреса електронної пошти користувача | |
| description | Текст опису в інформації користувача |
| organization_id | ID організації, до якої належить користувач |
| organization_name | Назва організації, до якої належить користувач |
| team_id | ID команди, до якої належить користувач |
| supervisor_id | ID супервайзера користувача |
| is_supervisor | 1 якщо користувач є супервайзером, 0 якщо ні |
instancePath: Повертає поточний шлях папки екземпляру.
appLanguage: Повертає поточну мову додатку, встановлену в налаштуваннях (наприклад, vi, en).
openArgs.[attribute]: Повертає аргумент відкриття форми, переданий з ActionButton. Значення за замовчуванням/резервне — порожній текст ("").
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') |
Час сервера замість часу пристрою
| 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 | Supervisor review | ${is_supervisor} = '1' |
| text | supervisor_notes | Supervisor notes | |
| end_group |
Примітки
- Всі виклики
pulldata('app-api', ...)оцінюються при відкритті форми і не переоцінюються динамічно під час сесії (крімserverTimeтаnow()). - Якщо ключ не підтримується або дані недоступні, функція повертає
'n/a'(не порожній рядок — перевіряйте!= 'n/a'). - Значення
openArgsдоступні лише при запуску форми з кнопки дій; в іншому випадку повертають порожній рядок.