Эта страница является
переводом страницы
Push API. Перевод выполнен на 100%.
API iRidium. Push уведомления
методы для отправки 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, JSON данные для передачи в скрипты приложения-клиента, получившего Push
|
| 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). Если допустимый объем данных превышен, метод вернет ошибку отправки
символы & и # не поддерживаются в тексте сообщений и данных скрипта
Группы устройств
Чтобы панель управления получила уведомление, ее нужно поместить в Группу. Группа создается на сайте, во вкладке "Пользователи и панели" настроек облачного объекта. Группа присваивается сочетанию "пользователь+проект". Т.е. каждый проект одного пользователя может входить в разные группы и получать разные уведомления.
1 Присвоить Группу пользователю и проекту. Группа будет автоматически присвоена любой панели управления, на которой пользователь авторизуется и скачает этот проект
2 Присвоить Группу панели управления по HWID. Можно убрать или добавить Группы для отдельных панелей
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]);
| на входе
|
значение
|
описание
|
| 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));
}
}
});