Перейти к основному содержимому

API iRidium. Push уведомления

Vетоды для отправки Push уведомлений на iOS и Android устройства

Методы

IR.SendPush

Важно

Только для iRidium Server!

Отправить Push уведомление группе панелей управления

Синтаксис

IR.SendPush(title, js_data, group_id, [status_callback], [this_ptr], [sound_type]);

на входезначениеописание
title"text of notify"type: string
текст уведомления
js_data"data"type: string
данные для передачи в скрипты приложения-клиента, получившего Push, JSON
group_id1type: number
идентификатор Группы устройств , которые получат уведомление. Группы настройте в личном кабинете на сайте, вкладка объекта "Пользователи и панели"
status_callbackstatustype: function
функция обработки статуса Push. На входе функция получает объект, в котором хранятся код и текстовое описание результата отправки Push
this_ptrthistype: this
указатель на окружение, будет доступен в status_callback как this
sound_type0type: number
тип звукового сигнала, который будет воспроизведен при получении устройством Push уведомления. 0 - короткий сингал (по умолчанию), 1 - длинный сигнал
на выходе
-

Пример

// simple Push (send a text)
IR.SendPush("Hello World!", "Data", 1);
// advanced Push (with data to JS and status processing)
function status (object) {
IR.Log('Status of Push: ' + object.Error + ' - ' + object.ErrorDescription);
}
IR.SendPush("Hello World!", "data for JS", 1, status, this, 0);
Подсказка
  • объем текста и данных, которые можно отправить в Push, ограничен, и зависит от устройства, на которое вы посылаете уведомление (2 Кб для iOS, 4 Кб для Android). Если допустимый объем данных превышен, метод вернет ошибку отправки
  • символы & и # не поддерживаются в тексте сообщений и данных скрипта

Группы устройств

Чтобы панель управления получила уведомление, ее нужно поместить в Группу. Группа создается на сайте, во вкладке "Пользователи и панели" настроек облачного объекта. Группа присваивается сочетанию "пользователь+проект". Т.е. каждый проект одного пользователя может входить в разные группы и получать разные уведомления.

AttachPushGroup.png

  1. Присвоить Группу пользователю и проекту. Группа будет автоматически присвоена любой панели управления, на которой пользователь авторизуется и скачает этот проект
  2. Присвоить Группу панели управления по HWID. Можно убрать или добавить Группы для отдельных панелей

CreateOrEditPushGroup.png

  1. Создать новую Группу (для отправки Push вы будете использовать Group ID)
  2. Группы, в которые входит панель управления (пользователь и проект)
  3. Группы, в которые панель управления не входит

Функция обработки статуса Push

Важно

Только для iRidium Server!

Срабатывает при каждой отправке Push уведомления и получает результат отправки: успех или ошибку.

function status (object)
{
IR.Log("Status of Push (Code): " + object.Error);
IR.Log("Status of Push (Text): " + object.ErrorDescription);
}
IR.SendPush("Hello World!", "Data", 1, status, this, 0);
  • object.Error - код события, результата отправки Push. Код события:
    • 0 (Success) - успешная отправка
    • 1-10 (Error) - код ошибки
  • object.ErrorDescription - текстовое описание события

События

IR.EVENT_RECEIVE_PUSH_NOTIFY

Важно

Только для i3 pro!

обработчик данных, полученных с Push уведомлением. В него придет текст уведомления, данные, предназначенные для JS и ID группы, которой предназначено уведомление.

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_PUSH_NOTIFY, 0, function (text, data, group) {}, [pointer]);

на входезначениеописание
functionfunction() {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
-

Пример

IR.AddListener(IR.EVENT_RECEIVE_PUSH_NOTIFY, 0, function(text, data, group)
{
IR.Log("EVENT_RECEIVE_PUSH_NOTIFY:" + text + " data:" + data + " group:" + group);
if(data == "do the action")
{
IR.Log("Ok I do");
}
if(data.indexOf("{") == 0)
{
var obj = JSON.Parse(data);
if(typeof(obj) != "undefined")
{
IR.Log("Json:OK");
IR.Log(JSON.Stringify(obj));
}
}
});