}
Описание полей:
- trim – удалять логи с устройства после отправки их на сервер; schedule – расписание отправки логов на сервер в формате crontab.
5.1.10 Методы работы с push-уведомлениями
Отправка push-уведомлений
Сервер платформы принимает сообщение от бэкенда и отправляет его мобильным клиентам.
Запрос
Методы: POST.
URL: /api/v0.6/push/?service=<push_service_name>&topic=<push_topic>.
Обработка запроса
Для push-сервиса есть возможность выбрать в административном интерфейсе режим доставки сообщения – Quality of Service (QoS):
- Подтверждение доставки не ожидается, retry не предусмотрен. Если мобильный клиент находится оффлайн – сообщение теряется; Сообщение точно будет доставлено один раз (но может большее количество раз), сообщение кэшируется в брокере, если мобильный клиент не в сети; Сообщение точно будет доставлено один раз, оно кэшируется в брокере, если мобильный клиент не в сети.
Push-темы имеют иерархический вид, например, a/b/c. При их создании можно использовать два специальных символа:
- Символ + позволяет подписываться на все темы одного конкретного уровня. Пример: при создании темы a/+ и выдаче прав на нее мобильному пользователю последний получает уведомление и в том случае, если запрос на push-entry пришёл с указанием любой из тем a/b, a/c; Символ # позволяет подписываться на все темы выше по иерархии. Пример: при создании для мобильного пользователя темы a/# он получит уведомления по следующим запросам:
- a/b; a/b/c; a/b/+/; a/b/+/d.
Тело запроса: Любая информация в формате binary/octet-stream.
Ответ
При удачной публикации сообщения:
{"status": "OK"}
5.1.11 Форматы для передачи данных
Описание ошибки
Успешно выполненные запросы должны возвращать код ответа 200 OK (кроме случая докачки).
Ответы с кодами 4XX должны в теле содержать описание ошибки в формате JSON. Структура описания должна быть как в примере ниже:
{
"code": 123,
"description": "Некорректное значение параметра fruit_id. Должно быть целое положительное число."
}
Параметры табличного ресурса
{
"scalar_param": 123,
"table_param": <строки_таблицы>
}
Строки таблицы
[
[1, "Апельсин"],
[2, "Банан"],
...
]
Дельта таблицы
{
"insert_rows": <строки_таблицы>,
"delete_ids": [3, 7, 10]
}
Перечень ресурсов с описанием структуры
{
"resource_name_1": <описание_ресурса_1>,
...
}
Описание ресурса
Описание табличного ресурса (SAP, Orcale, MS SQL Server, JSON)
{
"type": "tabular",
"input": {
"param_name_1": <описание_типа_данных_1>,
"param_name_2": <структура_таблицы_2>,
...
},
"output": <структура_таблицы>
}
Описание web-ресурса
{
"type": "web"
}
Описание WebDAV-ресурса
{
"type": "webdav"
}
Структура таблицы
[
{"column_name_1": <описание_типа_данных_1>},
{"column_name_2": <описание_типа_данных_2>},
...
]
Описание типа данных
{
"HyperHive": "text",
"format": "<format>"
}
Числовые параметры для типа данных из источника не поддерживаются.
Поле "format" опционально. Должно содержать записи вида "YYYY-MM-DD".
Список логов
[
{
"time": "2012-04-23T18:25:43.511Z",
"level": "info",
"data": "Отредактирован вес арбуза"
},
...
]
Ограничения на значения полей:
- time – дата и время в формате ISO 8601 по спецификации RFC 3339 секция 5.6, пример "2012-04-23T18:25:43.511Z"; level – одно из значений "info", "warning", "error"; data – текст.
5.2 FAQ разработчика
Ниже приведены наиболее распространенные вопросы от разработчиков и ответы на них.
1. Не удается подключиться к серверу HyperHive, хотя всё делаю правильно.
Проверьте журнал сервера HyperHive в веб-панели администратора: если соединение к серверу устанавливается, то в журнале будет указана ошибка установления соединения. Наиболее распространенная причина - отсутствие активной лицензии или превышение её лимитов.
2. Не удается загрузить данные из системы-источника, хотя настройки указаны верно.
В веб-панели администратора в настройках источника данных проверьте успешность подключения к нему. Наиболее распространенная причина - запущенная/остановленная служба OpenVPN на сервере HyperHive:
- если вы используете облачный сервер HyperHive, то служба OpenVPN на сервере HyperHive скорее всего должна быть запущена, если вы используете одиночный сервер HyperHive, то служба OpenVPN на сервере HyperHive скорее всего должна быть остановлена.
3. Возникла ошибка превышения количества пользователей или устройств, указанных в лицензии
В веб-панели администратора в разделе Лицензии вы можете увидеть количество зарегистрированных в платформе HyperHive мобильных пользователей и устройств. Администраторы сервера HyperHive не лицензируются и не учитываются при подсчете использованных лицензий.
При достижении или превышении количества пользователей или устройств, указанных в лицензии вы можете:
- Докупить необходимое количество лицензий и ввести в платформу HyperHive дополнительную лицензию. По вопросам лицензирования и приобретения обращайтесь по адресу *****@***com. Удалить необходимое количество зарегистрированных в платформе HyperHive мобильных пользователей или мобильных устройств.
Если вы не нашли ответа на интересующий вас вопрос, вы можете адресовать его по адресу *****@***com.
5.4 Фреймворк Android
Данный раздел содержит материалы, относящиеся к мобильному фреймворку Android.
5.4.1 Подключение Android-фреймворка в проект
Для подключения Android фреймворка в проект разработки мобильного приложения необходимо выполнить следующие шаги:
Загрузить архив с android фреймворком (см. материал Загрузка дистрибутивов HyperHive); Разархивировать файл hhive-framework-android. rar; Используя Android Studio подключить модуль *.aar из распакованной папки. Для этого необходимо: Открыть настройки структуры проекта в меню File. Появится окно следующего вида:
5.4.2 Инициализация и настройка Android-фреймворка
Главный класс для вызова методов API называется HyperHive. При создании его экземпляра необходимо указать параметры проекта для инициализации. Для этого нужно использовать класс HyperHiveState.
Ниже приведен пример инициализации HyperHive в классе Application:
Добавить разрешение для доступа к интернету в файле манифеста:Expand source
<uses-permission android:name="android. permission. INTERNET" />
Создать класс Application для инициализации фреймворка при инициализации приложения в новом пакете app:Expand source
public class App extends Application {
@Override
public void onCreate() {
}
}
Подключить класс Application в файле манифеста:Expand source
<application
android:name=".app. App"
Задать параметры и инициализировать фреймворк:Expand source
public class App extends Application {
private static HyperHive hyperHive;
private static Handler uiHandler;
@Override
public void onCreate() {
super. onCreate();
// Задаем параметры для работы с HyperHive
HyperHiveState hyperHiveState = new HyperHiveState(getApplicationContext());
hyperHiveState. host("test. sp. ");
hyperHiveState. apiVersion("v0.6");
hyperHiveState. environmentSlug("test");
hyperHiveState. projectSlug("project");
hyperHiveState. applicationSlug("app");
// Создаем объект класса HyperHive на основе выставленных параметров
hyperHive = hyperHiveState. buildHyperHive();
// Создаем хэндлер в UI потоке, для передачи в него данных из других потоков.
uiHandler = new Handler();
}
// Статический метод для получения hyperHive
public static HyperHive hyperHive() {
return hyperHive;
}
// Статический метод для получения хэндлера для выполнения в UI потоке
public static Handler uiHandler() {
return uiHandler;
}
}
Важно указать все обязательные параметры. Иначе при инициализации фреймворка появится сообщение об отсутствии обязательного параметра.
5.4.3 Вызов методов Android-фреймворка
Время выполнения различных вызовов к API может быть, как очень коротким (быстрые методы), так и длительным (длительные методы). Поэтому, методы в классе HyperHive можно разделить на два типа: быстрые методы и длительные методы.
Быстрые методы можно выполнять в UI потоке.
Для длительных методов выполнение в UI потоке опасно и стоит считать, что запрещено.
Для быстрых операций методы выполняются только синхронно. Результат выполнения, если он есть, возвращает метод.
Пример:
Expand source
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |


