- Справочник
- Push уведомления
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_id | 1 | type: number идентификатор Группы устройств , которые получат уведомление. Группы настройте в личном кабинете на сайте, вкладка объекта "Пользователи и панели" |
| status_callback | status | type: function функция обработки статуса Push. На входе функция получает объект, в котором хранятся код и текстовое описание результата отправки Push |
| this_ptr | this | type: this указатель на окружение, будет доступен в status_callback как this |
| sound_type | 0 | type: 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). Если допустимый объем данных превышен, метод вернет ошибку отправки
- символы & и # не поддерживаются в тексте сообщений и данных скрипта
Группы устройств
Чтобы панель управления получила уведомление, ее нужно поместить в Группу. Группа создается на сайте, во вкладке "Пользователи и панели" настроек облачного объекта. Группа присваивается сочетанию "пользователь+проект". Т.е. каждый проект одного пользователя может входить в разные группы и получать разные уведомления.

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

- Создать новую Группу (для отправки Push вы будете использовать Group ID)
- Группы, в которые входит панель управления (пользователь и проект)
- Группы, в которые панель управления не входит
Функция обработки статуса 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]);
| на входе | значение | описание |
|---|---|---|
| function | function() {} | 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));
}
}
});