Материал из for iRidium developers
Перейти к: навигация, поиск
Эта страница является переводом страницы Systems API. Перевод выполнен на 100%.

Other languages:

API iRidium. Система

функции, методы, свойства объектов, используемых для работы с приложением в контексте его запуска, выполнения, завершения и изменения операционной системой

Объект IR - глобальный объект, содержащий в себе все функции и константы API iRidium. Методы объекта IR для управления системными событиями приложения iRidium.

Методы

IR.ShowSystemMenu

открыть системное меню с предварительным вводом инженерного пароля. Выполнив команду, вы получите окно ввода пароля, после ввода 2007 откроется системное меню.

Синтаксис

IR.ShowSystemMenu();

на входе значение описание

-

на выходе

-


Пример

function ShowMenu () {
    IR.ShowSystemMenu();
};

без ввода инженерного пароля нельзя получить доступ к системному меню через скрипт.


IR.ShowSettingsMenu

открыть боковое меню выбора проектов i3 pro на указанной вкладке

Синтаксис

IR.ShowSettingsMenu(tab_id);

на входе значение описание
tab_id 1 type: number
идентификатор вкладки меню, которую нужно открыть:
  • 0 - Local (локальные проекты)
  • 1 - Cloud (облачные проекты)
на выходе

-


Пример

function ShowMenu () {
    IR.ShowSettingsMenu(1);
};





IR.HWID

свойство объекта IR, хранит HWID панели управления, на которой запущено приложение i3 pro.

Синтаксис

IR.HWID

на входе значение описание

-

на выходе
hwid ff2c...1958 type: string
HWID панели управления


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
    IR.Log("Panel HWID: "+IR.HWID); // Panel HWID: ff2c589a2879c0fe1158697d5d4c1958
});

чтобы получить символ из HWID, используйте функцию charAt(symbol). Нумерация символов начинается с нуля:

IR.Log(IR.HWID.charAt(0));




IR.Exit

закрыть приложение. Доступно только на Andorid и Windows

Синтаксис

IR.Exit();

на входе значение описание

-

на выходе

-


Пример

function CloseApp () {
    IR.Exit();
};

доступно только на Andorid и Windows


IR.ShowKeyboard

показать системную клавиатуру iOS или Android устройства

Синтаксис

IR.ShowKeyboard(type, ok_text, color, capitalization)

на входе значение описание
type 1 type: Number
тип клавиатуры, он же может закрыть клавиатуру (значение 0):
  • сработает на iOS и Android:
    • 0 - Hide
    • 1 - Regular
    • 2 - URL address
    • 3 - Numeric
    • 4 - Phone number
    • 5 - E-mail address
    • 6 - Decimal
    • 7 - Text
    • 8 - Twitter
    • 9 - Web search
    • 10 - Numeric
    • 11 - Password
  • сработает только на Android:
    • 12 - Date and Time
    • 13 - Date
    • 14 - Time
    • 15 - Numeric signed
    • 16 - Numeric password
    • 17 - Text characters
    • 18 - Text sentences
    • 19 - Text words
    • 20 - Text ime multi line
    • 21 - Text multi line
    • 22 - Text suggestions
    • 23 - Text email subject
    • 24 - Text filter
    • 25 - Text long message
    • 26 - Text password
    • 27 - Text phonetic
    • 28 - Text postal address
    • 29 - Text short message
    • 30 - Text visible password
    • 31 - Text web email address
    • 32 - Text web password
    • 33 - Smart
    • 34 - Voice
ok_text 0 type: Number
текст, который будет отображаться на кнопке return:
  • 1 - default
  • 2 - go
  • 3 - google
  • 4 - join
  • 5 - next
  • 6 - route
  • 7 - search
  • 8 - send
  • 9 - yahoo
  • 10 - done
  • 11 - call
  • 12 - continue
color 0 type: Number
цвет клавиатуры
  • 1 - выбрать автоматически
  • 2 - темная
  • 3 - светлая
capitalization 0 type: Number
авто-капитализация текста
  • 1 - none
  • 2 - первые буквы слов
  • 3 - первые буквы предложений
  • 4 - все символы
на выходе

-


Пример

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function()
{
  IR.ShowKeyboard(1); // regular
  IR.ShowKeyboard(1, 1, 1, 1); // regular, default, default, no capitalization
});

На iOS для скрытия клавиатуры можно использовать команду IR.ShowKeyboard(0), на Android это не сработает.
Для открытия клавиатуры, все другие клавиатуры должны быть скрыты. Если клавиатура уже открыта, например числовая, то команда открыть клавиатуру с алфавитом будет не удачной.
Для открытия клавиатуры на Windows, используйте команду IR.Execute("osk").


IR.Execute

выполнить произвольную URL схему (команду операционной системе), которая поддерживается устройством. К таким командам относятся: открытие гиперссылку в браузере, отправить СМС, совершить звонок по номеру телефона, написать email, запустить приложение по имени, запустить приложение по указанному пути и др.

Синтаксис

IR.Execute(scheme)

на входе значение описание
scheme http://iridiummobile.net type: string
команда, которую необходимо выполнить
на выходе

-


Пример

IR.AddListener(IR.EVENT_START, 0, function() {
    IR.Execute('http://iridiummobile.net');
});

примеры URL схем

 // All
	IR.Execute("http://iridiummobile.net"); // open link
	IR.Execute("mailto:support@iridiummobile.ru"); // send email
// Windows	
	IR.Execute("cmd"); // command string
	IR.Execute("calc"); // calculator
	IR.Execute("c:\\Program Files\\iRidium\\iRidium.exe"); // launch app
// iOS, Android
	IR.Execute("music:"); // open Music
	IR.Execute("videos:"); // open Videos
	IR.Execute("ibooks://"); // open iBooks
	IR.Execute("fb://feed"); //open Facebook
	IR.Execute("twitter://"); // open Twitter
// iPhone, Android smartphone
	IR.Execute("tel:+1234567890"); // call to
	IR.Execute("sms:+1234567890"); // send SMS


Windows: для запуска приложения на Windows каждый одинарный слеш в пути к файлу должен быть заменен на двойной обратный слеш


IR.GetSystemInfo

получить информацию о памяти и кэше приложения

Синтаксис

IR.GetSystemInfo("GC_MEMORY_INFO").property

на входе значение описание
property UsedMemory type: object
свойство, которое необходимо вернуть:
  • .UsedMemory
  • .TotalMemory
  • .ChunkHeaps
  • .ChunkCache
  • .MemoryHeaps
  • .MemoryBusyBlocks
  • .MemoryFreeBlocks
на выходе
property type: string
значение в свойстве


Пример

IR.AddListener(IR.EVENT_START,0,function() {
    IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").UsedMemory);
});





IR.GetCurrentWlanInfo

получить информацию о беспроводной сети, к которой подключена панель управления.Список сетей объединяется в массив. Каждая сеть - элемент массива, включающий фиксированный список свойств.

Синтаксис

IR.GetCurrentWlanInfo()[element].property

на входе значение описание
element 0...n type: number
номер элемента массива, соответствующий порядковому номеру сетевого подключения
property Name type: object
свойство, которое необходимо вернуть:
  • .Name - тип сетевого подключения
  • .SSID - имя сети
на выходе
property type: string
значение в свойстве


Пример

IR.Log(IR.GetCurrentWlanInfo()[0].SSID)
IR.AddListener(IR.EVENT_START,0,function()
{
   var l_aWlanInfo = IR.GetCurrentWlanInfo();
   if (l_aWlanInfo.length) {
	   IR.Log("Name = " + l_aWlanInfo[0].Name);
	   IR.Log("SSID = " + l_aWlanInfo[0]['SSID']);
   } else {
      IR.Log("There is no network connections found");
   }
});

Проверяйте длину массива, чтобы убедиться в наличии хотя бы одной сети


IR.GetCurrentLocalIPInfo

получить сетевые настройки панели управления, на которой работает i3 pro

Синтаксис

IR.GetCurrentLocalIPInfo()[element].property

на входе значение описание
element 0...n type: number
номер элемента массива, соответствующий порядковому номеру сетевого подключения
property Name type: object
свойство, которое необходимо вернуть:
  • .Name - имя сетевого соединения
  • .IP - IP адрес панели управления
  • .Mask - маска подсети
  • .MAC - MAC адрес
на выходе
property type: string
значение в свойстве


Пример

IR.AddListener(IR.EVENT_START,0,function()
{      
   var l_aIPInfo = IR.GetCurrentLocalIPInfo();
   IR.Log("Name = " + l_aIPInfo[0].Name);
   IR.Log("IP = " + l_aIPInfo[0].IP);
   IR.Log("Mask = " + l_aIPInfo[0].Mask);
   IR.Log("MAC = " + l_aIPInfo[0].MAC);
});





IR.Log

вывести данные в консоль отладки приложения i3 pro (консоль на Windows открывается клавишей F4)

Синтаксис

IR.Log(data);

на входе значение описание
data type: object, string, number, array
данные для вывода в лог
на выходе
data type: string
строковые данные в логе приложения


Пример

IR.AddListener(IR.EVENT_START,0,function() {
    IR.Log("Hello World!");
});

данные, отправленные в консоль, конвертируются в строку


IR.SetInterval

повторять действия в цикле, с установленным интервалом (мс)

Синтаксис

IR.SetInterval(time, action)

на входе значение описание
time 500 type: number
(мс) интервал выполнения функции
action function() { } type: number
не именованная функция или имя функции, которая содержит список действий для выполнения в цикле
на выходе

-


Пример

function actions() 
{
  IR.Log("do action");
}
IR.SetInterval (2000, actions);
IR.SetInterval (2000, function() 
{
  IR.Log("do action");
});
var Inv = IR.SetInterval (2000, function() 
{
  IR.Log("do action");
}); 
IR.ClearInterval(Inv);

запущенный IR.SetInterval будет работать, пока открыт проект, если его не остановить с помощью IR.ClearInterval
Интервал можно остановить, только обратившись к нему по имени переменной. Поэтому при создании интервала нужно присвоить его переменной
В интервале нельзя запустить функцию с параметрами
JavaScript в iRidium работает в одном потоке. Это значит, что все функции в нем выполняются последовательно. Для функции IR.SetInterval это приводит к тому, что каждый цикл выполнения скрипта может занять разное время. Это приводит к погрешности выполнения интервалов, которая зависит от количества и типа выполняемых операций. Система компенсирует погрешность автоматически для сохранения точности в больших промежутках времени (чтобы избежать накопления временных ошибок), поэтому интервалы могут отличаться на величину от десятков до сотен миллисекунд в большую и меньшую сторону. Учитывайте это при создании команд, минимальный интервал между которыми может быть критичен - закалывайте большее значение интервала или используйте функцию IR.SetTimeout, которая не использует механизм компенсации.


IR.SetTimeout

выполняет функцию после задержки (мс)

Синтаксис

IR.SetTimeout(time, action)

на входе значение описание
time 500 type: number
(мс) задержка выполнения функции
action function() { } type: number
не именованная функция или имя функции, которая содержит список действий для выполнения с задержкой
на выходе

-


Пример

function actions() 
{
  IR.Log("do action");
}
IR.SetTimeout(2000, actions);
IR.SetTimeout(2000, function() 
{
  IR.Log("do action");
});
var Tmr = IR.SetTimeout(2000, function() 
{
  IR.Log("do action");
}); 
IR.ClearInterval(Tmr);

запущенный IR.SetTimeout можно остановить с помощью IR.ClearInterval (отдельной функции IR.ClearTimeout не существует).
Таймер можно остановить, только обратившись к нему по имени переменной. Поэтому при создании интервала нужно присвоить его переменной
Таймеру нельзя передать функцию с параметрами


IR.ClearInterval

удаляет таймеры IR.SetInterval и IR.SetTimeout по идентификатору. Чтобы получить идентификатор, сохраните его в переменную. Это возможно только при создании таймера.

Синтаксис

IR.ClearInterval(timer_id)

на входе значение описание
timer_id var timer type: object
идентификатор таймера, который нужно удалить
на выходе

-


Пример

var id = IR.SetTimeout (10000, function ()
{
        IR.Log("do something");
}); 
IR.SetTimeout(5000, function ()  // stop after 5000 ms
{
        IR.ClearInterval(id);
});

используется для удаления IR.SetInterval и IR.SetTimeout
получить идентификатор для удаления можно только при создании таймера


IR.AddListener

создает слушатель - функцию, которая выполняется в случае срабатывания указанного ей события. Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания. Список событий, разделенный по типам, доступен в справочнике.

Синтаксис

IR.AddListener(event, input, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
    IR.Log("app started");
});
IR.AddListener(IR.EVENT_ITEM_PRESS,IR.GetItem("Page 1").GetItem("Item 61"),function()
{
   IR.Log("button 61 pressed");  
});


Пример 2:

for(var i = 0; i < IR.GetItem("Page 1").ItemsCount; i++){
   // объявление слушателя и добавление pointer'а
   IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem(i),  press,  IR.GetPage("Page 1").GetItem(i) );
} 
function press(){
   //выводим в лог имя сработавшей кнопки, используя this как ссылку на объект 
   IR.Log(this.Name);
}

О выполнении скрипта с помощью слушателей читайте в Руководстве


IR.RemoveListener

удаляет слушатель созданный с помощью IR.AddListener. Функции необходимо передать те же параметры, что были указаны при создании слушателя.

Синтаксис

IR.RemoveListener(event, input, function, [pointer]);

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

-


Пример

function pressed () 
{
    IR.Log("action");
}
// add listener
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 61"), pressed); 
// remove listener
IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 61"), pressed);
var l_pressed;
// add listener
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 61"), l_pressed =  function () 
{
    IR.Log("action");
});
// remove listener
IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 61"), l_pressed);





IR.SetGlobalListener

создает глобальный слушатель - функцию, которая выполняется в случае срабатывания указанного ей события. Может работать только с двумя событиями: IR.EVENT_GLOBAL_TAG_CHANGE (срабатывает при изменении любого тега в iRidium) и IR.EVENT_GLOBAL_GUI_CHANGE (срабатывает при любом событии интерфейса).

В отличие от IR.AddListener, глобальный слушатель в можно объявить только 1 раз. При повторном объявлении, работать будет только последний слушатель, созданный интерпретатором при запуске скрипта.

Чтобы слушатель сработал при изменении тега в проекте iRidium, на это изменение нужно подписаться методом IR.SubscribeTagChange

Синтаксис

IR.SetGlobalListener(event, function, [pointer]);

на входе значение описание
event IR.EVENT_GLOBAL_TAG_CHANGE type: object
идентификатор события, за которым следит глобальный слушатель:
function function(name, value) {} type: function
не именованная функция или ссылка на объявленную функцию, внутри которой выполняются действия. В функцию передаются имя тега, на который есть подписка, и измененное значение
pointer type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе

-


Пример

// Set global listener
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
     IR.Log("Active Global Listener: " + name + "\tValue: " + value);
});
// Subscribe 
IR.SubscribeTagChange("Drivers.KNX.Online");       // driver token
IR.SubscribeTagChange("Drivers.KNX.Address 1");       // driver feedback
IR.SubscribeTagChange("Global.Token 1");           // project token
IR.SubscribeTagChange("UI.Page 1.Item 1.Text");    // item property
IR.SubscribeTagChange("System.Time.Hour");         // system time, hours
IR.SubscribeTagChange("System.Time.Minutes");      // system time, minutes
// resend the data from KNX Address 1 to Address 2 on change (for iRidium Server)
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
   if (name == "Server.Channels.KNX.Address 1")
      IR.SetVariable("Server.Channels.KNX.Address 2", value);
});
IR.SubscribeTagChange("Server.Channels.KNX.Address 1");

в слушатель будет приходить полное имя тега, на который вы подписались (name)
Глобальный слушатель можно создать в проекте только 1 раз, иначе работать будет только последний
Слушатель реагирует на изменение тега, только если подписан на этот тег методом IR.SubscribeTagChange
Слушатель реагирует только на изменение тега (не сработает, если пришло значение, равное текущему)
Максимальное число подписок на глобальный слушатель практически не ограничено (близко к млн)
Отписаться от тега: IR.UnsubscribeTagChange


IR.SubscribeTagChange

подписаться на изменение тега iRidium через глобальный слушатель на событие IR.EVENT_GLOBAL_TAG_CHANGE. Теги, на которые подписан слушатель, возвращают свое значение при каждом изменении.

Синтаксис

IR.SubscribeTagChange(name);

на входе значение описание
name "Drivers.AV (TCP).Feedback 1" type: string
полное имя тега, на который нужно подписаться с помощью глобального слушателя IR.EVENT_GLOBAL_TAG_CHANGE
на выходе

-


Пример

//Set global listener
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
     IR.Log("Global Listener Activated: " + name + "\tValue: " + value);
});
// Subscribe 
IR.SubscribeTagChange("Drivers.KNX IP Router.Address 1"); 
IR.SubscribeTagChange("Drivers.AV & Custom Systems (TCP).Online"); 
IR.SubscribeTagChange("UI.Page 1.Item 1.Text"); 
IR.SubscribeTagChange("System.Time.24");
// resend the data from KNX Address 1 to Address 2 on change (for iRidium Server)
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
   if (name == "Server.Channels.KNX.Address 1")
      IR.SetVariable("Server.Channels.KNX.Address 2", value);
});
IR.SubscribeTagChange("Server.Channels.KNX.Address 1");

Отписаться от тега можно с помощью метода IR.UnsubscribeTagChange


IR.UnsubscribeTagChange

отписаться от тега iRidium, изменение которого отслеживается глобальным слушателем на событие IR.EVENT_GLOBAL_TAG_CHANGE. Подписка на тег осуществляется методом IR.SubscribeTagChange

Синтаксис

IR.UnsubscribeTagChange(name);

на входе значение описание
name "Drivers.AV (TCP).Feedback 1" type: string
полное имя тега, от которого нужно отписаться
на выходе

-


Пример

//Set global listener
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value) 
{
     IR.Log("Global Listener Activated: " + name + "\tValue: " + value);
});
// Subscribe
IR.SubscribeTagChange("UI.Page 1.Item 1.Text"); 
// Unsubscribe
IR.UnsubscribeTagChange("UI.Page 1.Item 1.Text");

Подписаться на тег можно с помощью метода IR.SubscribeTagChange


IR.CopyToClipboard

копировать строку в буфер обмена устройства на базе iOS, Android, Windows

Синтаксис

IR.CopyToClipboard(text)

на входе значение описание
text 'data' type: string
строка, которую нужно поместить в буфер обмена
на выходе

-


Пример

IR.AddListener(IR.EVENT_START, 0, function()
{    
   IR.CopyToClipboard(IR.GetVariable("System.Device.Name") + " HWID: " + IR.HWID);
});





IR.PasteFromClipboard

Вставить текст из буфера обмена в активный Editbox. Текст будет вставлен только если в буфере действительно находится Текст (а не изображение или др. контент). Курсор позиционируется после вставленного текста

Синтаксис

IR.PasteFromClipboard()

на входе значение описание

-

на выходе

-


Пример

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Paste Button"),function()
{
   IR.PasteFromClipboard();  
});

применение - клавиша вставки текста (можно расположить ее рядом с полем ввода)


IR.GetClipboard

Получить текст из буфера обмена

Синтаксис

IR.GetClipboard()

на входе значение описание

-

на выходе

-


Пример

var clipboard = IR.GetClipboard();

применение - передать текст из буфера в скрипт


IR.ShowPasteHelper

над курсором в активном EditBox этот метод отобразит нативное, масштабируемое в соответствии с разрешением проекта всплывающее окно: "PasteHelper" c надписью Paste, аналогично инструменту вставки на iOS и Android устройствах. По нажатию на это всплывающее окно, выполяется команда IR.PasteFromClipboard();. Нажатие на окно вставки, повторное нажатие на поле ввода или смена фокуса сразу закрывают PasteHelper

Синтаксис

IR.ShowPasteHelper()

на входе значение описание

-

на выходе

-


Пример

IR.AddListener(IR.EVENT_ITEM_HOLD, IR.GetItem("Page 1").GetItem("EditBox"),function()
{
   IR.ShowPasteHelper();  
});

Поведение инструмента вставки (элемент EditBox):

  • Windows:
    • при нажатии Ctrl+V, автоматически срабатывает IR.PasteFromClipboard();, если буфер не пустой и в нем находится текст
    • по нажатию правой кнопкой мыши на поле ввода, отображается стандартный диалог "Вставить"
    • курсор перемещается в конец строки
  • iOS, Android:
    • при удержании пальца на поле ввода в течение 1 секунды, автоматически срабатывает IR.ShowPasteHelper();, диалог Paste будет скрыт при нажатии на любой элемент
    • курсор перемещается в конец строки




IR.GetDesignsCount

подсчитывает число проектов визуализации в памяти приложения.

Синтаксис

IR.GetDesignsCount();

на входе значение описание

-

на выходе
number 1 type: number
число проектов, загруженных в память панели управления


Пример

IR.AddListener(IR.EVENT_START, 0, function() {
   var l_iCount = IR.GetDesignsCount();
   IR.Log("Designs Count = " + l_iCount);
   IR.Log("Current Project: " + IR.ProjectName);
 
   for(var i = 0; i < l_iCount; i++) {
      var l_sName = IR.GetDesignByIndex(i);
      IR.Log("Design(" + i + "): " + l_sName.Name);
   }
});

Использованы дополнительно:

  • IR.ProjectName - свойство объекта IR, хранит имя проекта, который сейчас открыт в i3 pro
  • IR.GetDesignByIndex(i) - получить ссылку на проект, как объект, обратившись к нему по индексу в списке загруженных проектов




IR.DesignSwitch

подсчитывает число проектов визуализации в памяти приложения.

Синтаксис

IR.DesignSwitch(name);

на входе значение описание
name "Welcome" type: string
имя проекта, на который нужно переключиться
на выходе

-


Пример

IR.AddListener(IR.EVENT_START, 0, function() {
   var l_iCount = IR.GetDesignsCount();
   IR.Log("Designs Count = " + l_iCount);
   IR.Log("Current Project: " + IR.ProjectName);
 
   for(var i = 0; i < l_iCount; i++) {
      var l_sName = IR.GetDesignByIndex(i);
      IR.Log("Design(" + i + "): " + l_sName.Name);
   }
}); 
 
function switch_to () {
   IR.DesignSwitch("Welcome"); // name of Project you want to switch to
}

в примере, по нажатию кнопки мы переключаемся на стартовую страницу приложения (проект Welcome). Использованы дополнительно:

  • IR.GetDesignsCount() - получить количество проектов, загруженных в i3 pro
  • IR.ProjectName - свойство объекта IR, хранит имя проекта, который сейчас открыт в i3 pro
  • IR.GetDesignByIndex(i) - получить ссылку на проект, как объект, обратившись к нему по индексу в списке загруженных проектов




IR.AndroidSendIR

отправить ИК команду через встроенный ИК-эмиттер Android устройства (IRDA)

Синтаксис

IR.AndroidSendIR(frequency, command);

на входе значение описание
frequency 38000 type: number
(Гц) частота отправки ИК команды
command [67,67,44,...,55,53,13] type: array
ИК команда в виде массива, включающего пульсы и паузы ИК сигнала
на выходе

-


Пример

IR.AndroidSendIR(38000, [67,67,67,67,67,66,67,67,67,67,67,67,66,67,66,66,66,66,66,66,44,50,49,44,55,53,54,13]);

если у вас команда в HEX формате, ее можно преобразовать в формат для отправки с помощью программы iConvert от Global Cache


IR.OpenBrowser

Открыть ссылку на странице браузера, не выходя из приложения i3 pro. Только для iOS и Android

Синтаксис

IR.OpenBrowser(link);

на входе значение описание
link "http://google.com" type: string
HTTP(s) ссылка
на выходе

-


Пример

function openbrowser () 
{
    IR.OpenBrowser("http://google.com");
}

на время работы с браузером приложение на iOS "замораживается"
корректная работа со встроенным браузером поддерживается только на iOS и Android


Popen

Popen - процесс, позволяющий iRidium Server выполнить команду в командной строке Windows и Linux. Popen не работает в приложении-клиенте i3 pro. Выполнение Popen открывает файловый указатель процесса и позволяет передать информацию о работе команды в указанный экземпляр функции - слушателя. Для того, чтобы выполнять несколько команд и различать информацию о их работе, мы создаем экземпляры Popen.

Синтаксис

var cmd_process = new Popen (command, function);

на входе значение описание
command 'ping 192.168.0.1' type: string
команда для выполнения в командной строке (cmd.exe)
function cmd_result type: function
экземпляр функции-слушателя, куда будут возвращены результаты выполнения команды
на выходе
line .onRecieve type: string
данные, которые генерирует команда в процессе выполнения. Событие .OnReceive срабатывает в контексте Popen и получает строку line как входной параметр. Строку можно вывести в лог или записать в переменную iRidium Server
result .onEnd type: number
код, который генерирует команда при завершении. Событие .onEnd срабатывает в контексте Popen и получает result как входной параметр. Код можно вывести в лог или записать в переменную iRidium Server:
  • 0 - команда успешно завершена
  • 259 и др. числа - ошибка. Код ошибки будет генерироваться при выполнении метода .Stop() - досрочном завершении команды, и в случае негативного результата (например, когда IP адрес недоступен для команды ping)
.Stop() .Stop() type: method
команда принудительной остановки процесса Popen. Процесс не нужно завершать, если сработало событие .onEnd, но обязательно нужно завершить, если команда сама по себе не прерывается (как, например, бесконечный пинг)


Пример

function Listener (cmd)
{
   this.onRecieve = function(line)
   {
      IR.Log(line); 
   }
 
   this.onEnd = function(result)
   {
      IR.Log('Command: '+ cmd + " Result: " + result);
   }   
}
 
function stop()
{
  cmd_process.Stop();
}
 
var cmd_result    =  new Listener ('ping 192.168.0.1');
var cmd_process   =  new Popen ('ping 192.168.0.1', cmd_result);

чтобы завершить процесс, используйте метод .Stop(). Команды, которые не завершаются сами, нужно останавливать принудительно, т.к. каждая из низ использует ресурсы ОС и влияет на быстродействие

popen работает только в iRidium Server на Windows и Linux. Не работает в i3 pro


iDate (object)

iDate - это представление даты в виде 64 битного числа с плавающей запятой. Может оперировать датами и временем в диапазоне от 1 января 100 года до 31 декабря 9999 года.

Подробности и примеры настройки: Объект iDate


IR.CalculateCRC

Подсчитать контрольную сумму строки (CRC) по алгоритму CRC8, CRC16 или CRC32

Синтаксис

IR.CalculateCRC(algorithm, string);

на входе значение описание
algorithm IR.CRC_16 type: object
алгоритм подсчета CRC:
  • IR.CRC_8
  • IR.CRC_16
  • IR.CRC_32
string "Test" type: string
строка, для которой нужно подсчитать CRC
на выходе
CRC 7205 type: number
результат подсчета CRC


Пример

var crc8 = IR.CalculateCRC(IR.CRC_8,  "Test");
var crc16 = IR.CalculateCRC(IR.CRC_16, "Test");
var crc32 = IR.CalculateCRC(IR.CRC_32, "Test");
 
IR.Log(crc8) // 207
IR.Log(crc16) // 7205
IR.Log(crc32) // 2018365746





IR.CalculateHash

Подсчитать хеш-сумму строки (hash) по алгоритму MD5, SHA1, SHA256, SHA384 или SHA512

Синтаксис

IR.CalculateCRC(algorithm, string);

на входе значение описание
algorithm IR.HASH_MD5 type: object
алгоритм подсчета хеш-суммы:
  • IR.HASH_MD5
  • IR.HASH_SHA1
  • IR.HASH_SHA256
  • IR.HASH_SHA384
  • IR.HASH_SHA512
string "Test" type: string
строка, для которой нужно подсчитать хеш-сумму
на выходе
hash 0cbc66...5a615b type: number
результат подсчета хеш-суммы


Пример

var hashMD5 = IR.CalculateHash(IR.HASH_MD5, "Test");
var hashSHA1 = IR.CalculateHash(IR.HASH_SHA1, "Test");
var hashSHA256 = IR.CalculateHash(IR.HASH_SHA256, "Test");
var hashSHA384 = IR.CalculateHash(IR.HASH_SHA384, "Test");
var hashSHA512 = IR.CalculateHash(IR.HASH_SHA512, "Test");
 
IR.Log(hashMD5);     // 0cbc6611f5540bd0809a388dc95a615b
IR.Log(hashSHA1);    // 640ab2bae07bedc4c163f679a746f7ab7fb5d1fa
IR.Log(hashSHA256);  // 532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25
IR.Log(hashSHA384);  // 7b8f4654076b80eb963911f19cfad1aaf4285ed48e826f6cde1b01a79aa73fadb5446e667fc4f90417782c91270540f3
IR.Log(hashSHA512);  // c6ee9e33cf5c6715a1d148fd73f7318884b41adcb916021e2bc0e800a5c5dd97f5142178f6ae88c8fdd98e1afb0ce4c8d2c54b5f37b30b7da1997bb33b0b8a31





IR.UrlDecode

заменяет UTF-8 управляющие последовательности соответствующими символами (декодирует UTF-8)

Синтаксис

IR.UrlDecode(url);

на входе значение описание
url 'http://www.google.com/search?&q=%D0%BE%D0%BA' type: string
строка UTF-8, обычно ссылка, которую нужно декодировать
на выходе
url http://www.google.com/search?&q=ок type: string
результат


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
   var utf8_encode = encodeURI('http://www.google.com/search?&q=ок');
   IR.Log(utf8_encode); // http://www.google.com/search?&q=%D0%BE%D0%BA
 
   var decode = IR.UrlDecode(utf8_encode);
   IR.Log(decode);	// http://www.google.com/search?&q=ок
});





IR.HtmlDecode

раскодировать спецсимволы (ссылки-мнемоники) в HTML структуре

Синтаксис

IR.HtmlDecode(text)

на входе значение описание
text
"&gt;"
type: string
исходный текст
на выходе
text > type: string
раскодированный текст


Пример

IR.AddListener(IR.EVENT_START, 0, function() 
{  
    var data = IR.HtmlDecode("&gt;");
    IR.Log(data) // >
});





JSON

JSON.Stringify

преобразовать JSON объект с строку

Синтаксис

JSON.Stringify(object)

на входе значение описание
object type: object
JSON объект
на выходе
text type: string
преобразованный в строку JSON объект


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
   var object = {"Room" : [{"Floor" : "Ground", "Name" : "Kitchen"}]}
   var string = JSON.Stringify(object);
   IR.Log(string) // {"Room":[{"Floor":"Ground", "Name":"Kitchen"}]}
});





JSON.Parse

преобразовать строку в JSON объект

Синтаксис

JSON.Parse(text)

на входе значение описание
text type: string
строка
на выходе
object type: object
JSON объект


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
   var string = '{"Room":[{"Floor":"Ground", "Name":"Kitchen"}]}'
   var object = JSON.Parse(string);
   IR.Log(object) // [object Object]
});





XML

new XML

создать XML объект

Синтаксис

new XML(text)

на входе значение описание
text type: string
строка, хранящая XML сообщение
на выходе
object type: object
XML объект


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
   var xml_string = '<file><name>project 1</name><version>v 1.0</version></file><Panel>"panel #1"</Panel><Panel>"panel #2"</Panel>'
   var xml_object = new XML(xml_string); // create XML object
 
   var name = xml_object.file["name"];	
   var version = xml_object.file.version;	
   var panel1 = xml_object.Panel[0];
   var panel2 = xml_object.Panel[1];	
 
   IR.Log(name+" "+version+" "+panel1+" "+panel2); // project 1 v 1.0 "panel #1" "panel #2"
});





.toXMLString

преобразовать XML объект в строку

Синтаксис

string.toXMLString()

на входе значение описание
object type: object
XML объект
на выходе
string type: string
строка


Пример

IR.AddListener(IR.EVENT_START,0,function()
{
   var xml_string = '<file><name>project 1</name><version>v 1.0</version></file><Panel>panel #1</Panel><Panel>"panel #2"</Panel>'   
 
   var xml_object = new XML(xml_string);
   var xml_string_from_object = xml_object.toXMLString()  // XML object to XML string
 
   IR.Log(xml_string_from_object);
});





IR.IsModuleLicensed

метод, применимый для коммерциализации уникальных скриптов. Позволяет узнать, есть ли в лицензии iRidium конкретный "продукт". Продукты включаются в коммерческие лицензии iRidium mobile по специальной договоренности с разработчиком скрипта. Принцип использования:

  1. Создайте скрипт, который хотите зашифровать и распространять на коммерческой основе
  2. Свяжитесь с менеджером iRidium mobile, чтобы получить уникальный ID для своего продукта - скрипта
  3. Добавьте в скрипт проверку ID методом IR.IsModuleLicensed(id), чтобы скрипт не начал работать, пока проект не получит соответствующую лицензию
  4. Защитите файл скрипта паролем, чтобы распространять его другим пользователям
  5. Свяжитесь с менеджерами, чтобы согласовать процедуру включения ID вашего продукта в коммерческие лицензии

Синтаксис

IR.IsModuleLicensed(id)

на входе значение описание
id 57599 type: number
уникальный ID продукта, предоставленный разработчику компанией iRidium mobile, хранится в лицензии
на выходе
success true type: boolean
результат проверки:
  • true - если продукт есть в лицензии
  • false - если нет


Пример

function RunProtectedModule  () {
    // protected content
}
 
// unique module ID  = 65537;
if (IR.IsModuleLicensed(65537)) RunProtectedModule ();

Trial лицензия и тестовый режим всегда возвращают true на проверку ID модуля, это обусловлено принципом беспалтного использования продуктов iRidium в тестовом режиме


IR.ValidatePassword

Метод позволяет использовать из скриптов стандартную 4-уровневую систему паролей проекта. Это может понадобиться, например, если вы хотите создать собственное окно запроса пароля, или запрашивать пароль по произвольному событию. Метод позволяет сравнить введенный пароль с настроенным в проекте, обеспечивает использование одного набора паролей для всех операций и возможность замены пароля в процессе работы.

Синтаксис

IR.ValidatePassword(pwd_number, check_string)

на входе значение описание
pwd_number 1 type: number
1...4 - номер пароля (сами пароли настраиваются в свойствах проекта), с которым нужно сравнить проверяемый пароль
check_string "password" type: string
пароль, который будет сравнен с настроенным в свойствах проекта
на выходе
result true type: boolean
результат проверки, true - пароль верный, false - не верный


Пример

var editbox = IR.GetItem("Page 1").GetItem("Item 1"); // editbox item on page
 
IR.AddListener(IR.EVENT_ITEM_CHANGE, editbox, function (action, key) // listen to changes in Editbox
{    
    if (action == 2) { // when press Enter in Editbox item
        var confirm = IR.ValidatePassword(1, editbox.Text) // check the password from Editbox
            if (confirm) {
                IR.Log("Access confirmed!");
                // any action have to be activated by correct password
            } else {
                IR.Log("Access denied!");
            }
        }
});

если в настройках проекта пароль не задан, метод всегда будет возвращать true


События

IR.EVENT_START

идентификатор события, которое срабатывает при запуске приложения i3 pro

Синтаксис

IR.AddListener(IR.EVENT_START, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_START, 0, function ()
{
    IR.Log("app started"); // action
});





IR.EVENT_WORK

идентификатор события, которое срабатывает каждый процессорный такт во время работы приложения.

Синтаксис

IR.AddListener(IR.EVENT_WORK, 0, function, [pointer]);

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

-


Пример

// IS NOT RECOMMENDED FOR REAL TASKS! 
IR.AddListener(IR.EVENT_WORK, 0, function ()
{
    IR.Log("app works"); // action
});

Событие не рекомендовано к использованию, т.к. не оптимально использует ресурсы. Вместо него используйте IR.SetInterval() или слушатели изменения драйверов.


IR.EVENT_EXIT

идентификатор события, которое срабатывает при завершении приложения i3 pro. Активируется при получении команды на закрытие приложения.

Синтаксис

IR.AddListener(IR.EVENT_EXIT, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_EXIT, 0, function ()
{
    IR.Log("app closed"); // action
});

cобытие не будет вызвано при аварийном завершении приложения


IR.EVENT_GLOBAL_TAG_CHANGE

идентификатор события, которое срабатывает при изменении любого тега в приложении iRidium. Теги - это любые свойства элементов интерфейса или драйверов, которые можно запросить. Чтобы система регистрировала изменение тега, на него нужно подписаться с помощью метода IR.SubscribeTagChange

Синтаксис

IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function() {}, [pointer]); IR.SubscribeTagChange(tag);

на входе значение описание
function function() {} type: function
не именованная функция или обращение к функции
tag "Drivers.AV (TCP).Online" type: string
полное имя тега, на изменение которого вы хотите подписаться с помощью метода IR.SubscribeTagChange. Без подписки, изменение тега не будет отражено в системе
pointer - type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе

-


Пример

//Set global listener
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
     IR.Log("Global Listener Activated: " + name + "\tValue: " + value);
});
// Subscribe 
IR.SubscribeTagChange("Drivers.KNX IP Router.Address 1"); 
IR.SubscribeTagChange("Drivers.AV & Custom Systems (TCP).Online"); 
IR.SubscribeTagChange("UI.Page 1.Item 1.Text"); 
IR.SubscribeTagChange("System.Time.24");
// Unsubscribe
IR.UnsubscribeTagChange("UI.Page 1.Item 1.Text");
// resend the data from KNX Address 1 to Address 2 on change (for iRidium Server)
IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value)
{
   if (name == "Server.Channels.KNX.Address 1")
      IR.SetVariable("Server.Channels.KNX.Address 2", value);
});
IR.SubscribeTagChange("Server.Channels.KNX.Address 1");

Глобальный слушатель можно создать в проекте только 1 раз, иначе работать будет только последний
Активировать слушатель: IR.SetGlobalListener
Слушатель реагирует на изменение тега, только если подписан на этот тег методом IR.SubscribeTagChange
Слушатель реагирует только на изменение тега (не сработает, если пришло значение, равное текущему)
Отписаться от тега: IR.UnsubscribeTagChange


IR.EVENT_ORIENTATION

идентификатор события, которое срабатывает при повороте панели управления, оснащенной акселерометром. Работу события можно эмулировать на Windows нажатием клавиши F5

Синтаксис

IR.AddListener(IR.EVENT_ORIENTATION, 0, function, [pointer]);

на входе значение описание
function function() {} type: function
не именованная функция или обращение к функции
pointer - type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
orientation_id 1 type: number
номер новой ориентации устройства:
  • 1 - вертикальная, кнопка Home внизу, константа: IR.ORIENTATION_PORTRAIT
  • 2 - вертикальная, кнопка Home вверху, константа: IR.ORIENTATION_PORTRAIT_UPSIDE_DOWN
  • 3 - горизонтальная, кнопка Home справа, константа: IR.ORIENTATION_LANDSCAPE_LEFT
  • 4 - горизонтальная, кнопка Home слева, константа: IR.ORIENTATION_LANDSCAPE_RIGHT


Пример

IR.AddListener(IR.EVENT_ORIENTATION, 0, Message);
function Message(orientation)
{
IR.Log("new orientation id: " + orientation);
switch (orientation) {
      case IR.ORIENTATION_PORTRAIT:
      IR.Log("Vertical")
      break;
      case IR.ORIENTATION_PORTRAIT_UPSIDE_DOWN:
      IR.Log("Upside down")
      break;
      case IR.ORIENTATION_LANDSCAPE_LEFT:
      IR.Log("Turned to the left");
      break;
      case IR.ORIENTATION_LANDSCAPE_RIGHT:
      IR.Log("Turned to the right");
      break;
   }
}

начальное значение ориентации будет получено при запуске приложения
эмулировать поворот на Windows можно нажатием F5


IR.EVENT_KEYBOARD_SHOW

идентификатор события, которое срабатывает в момент открытия клавиатуры на iOS или Android устройстве

Синтаксис

IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, function()
{
   IR.Log("keyboard showed"); 
});





IR.EVENT_RECIEVE_SCHEME

идентификатор события, которое срабатывает, когда i3 pro на iOS или Android вызывают URL схемой из браузера, почтового клиента или другого приложения. URL схема для вызова i3 pro имеет вид:
iridium://script?data1&data2
data1&data2 - строка с данными, которая будет передана в скрипт, в параметр query

Синтаксис

IR.AddListener(IR.EVENT_RECIEVE_SCHEME, 0, function, [pointer]);

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


Пример

// called URL scheme: iridium://script?Page1
IR.AddListener(IR.EVENT_RECIEVE_SCHEME,0,function(query, source) 
{
   if (query == "Page1")
      IR.ShowPage("Page 1");
});





IR.ANDROID_BACK_PRESS

идентификатор события, которое срабатывает при нажатии кнопки Back на Android (кнопка может быть аппаратной или программной). Если вы подписаны на это событие, кнопка Back будет выполнять только действия, запрограммированные в функции, которую выполняет слушатель. Если вы не подписаны на это событие, нажатие на кнопку Back свернет приложение

Синтаксис

IR.AddListener(IR.ANDROID_BACK_PRESS, 0, function, [pointer]);

на входе значение описание
function function() {} type: function
не именованная функция или обращение к функции
на выходе

-


Пример

var back_subscribe = function () 
{
   IR.Log("Back button pressed!");
}
IR.AddListener(IR.ANDROID_BACK_PRESS, 0, back_subscribe);
 
// to unsunscribe you can call the function back_unsubscribe (); in any moment
function back_unsubscribe () 
{
   IR.RemoveListener(IR.ANDROID_BACK_PRESS, 0, back_subscribe);
}

Если вы подписаны на это событие, кнопка Back будет выполнять только действия, запрограммированные на входе слушателя. Если вы не подписаны на это событие, нажатие на кнопку Back свернет приложение


Не поддерживаемые

Поддержка ниже перечисленных методов остановлена в iRidium v3

IR.DownLoadProject

загружает на панель управления проект, доступный по HTTP ссылке. При загрузке проекта можно задать ему уникальное имя для работы в режиме Мультипроектность.

Синтаксис

IR.DownLoadProject({type: protocol, host: host, path: path, multiproject: mode, name: name});

на входе значение описание
protocol 'https' type: string
тип протокола: http или https
host 'drive.google.com' type: string
IP адрес или доменное имя ресурса
path '/folder/file.irpz' type: string
путь к файлу проекта
mode 0 type: number
режим мультипроектности, 0 - выключен, 1 - включен
name 'Main' type: string
имя проекта, Main - интерфейс по умолчанию
на выходе
object [Object DevicePrototype] type: object
ссылка на драйвер iRidium HTTP Updater, запускающий обновление проекта


Пример

IR.AddListener(IR.EVENT_START, 0, function()
{    
   IR.DownLoadProject({
				type: 'https', 
				host: 'drive.google.com', 
				path: '/uc?export=view&id=0B2nsHBulOZWTR2tUaW85Vlo1Yzg', 
				multiproject: 0, 
				name: 'Main' 
   });
});
// regular expression returns the parsed link to Project
function parse_url(url) 
{
    var pattern = RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?");
    var matches =  url.match(pattern);
    return {
        scheme: matches[2],
        authority: matches[4],
        path: matches[5],
        query: matches[7],
        fragment: matches[9]
    };
}
// start the uroject uploading
function HTTPUpdate(url)
{
   var parsed_url = parse_url(url);
   var downloader = IR.DownLoadProject({
                type:parsed_url.scheme,
                host:parsed_url.authority,
                path:parsed_url.path + '?' + parsed_url.query,
                multiproject: 1,
                name: "TestNew"
                    });
}
// call the uploading function and send the URL for parsing
function Update_new()
{
         HTTPUpdate('https://drive.google.com/uc?export=view&id=0B2nsHBulOZWTR2tUaW85Vlo1Yzg');
}

имя проекта задается в свойстве name: файловая система в момент загрузки проекта получает новое имя, создает файл с новым именем и в этот файл записывает данные. Если включен режим мультипроектности, проект с новым именем будет добавлен к текущему, а не заменит его.


IR.SendNotification

отправить локальное уведомление на то же iOS устройство, где запущено приложение i3 pro (на других ОС не работает)

Синтаксис

IR.SendNotification(text, delay, sound_id, badge_increment_num, id)

на входе значение описание
text "event N" type: string
текст уведомления
delay 0 type: number
(cек) задержка появления уведомления
sound_id 1 type: number
идентификатор звука, с которым будет вызвано уведомление:
  • 0 - без звука
  • 1 - стандартный звук уведомления iOS
  • 2 - стандартный рингтон iOS
badge_increment_num 1 type: number
на сколько увеличить число полученных уведомлений поверх иконки приложения
id "None" type: string
уникальный идентификатор уведомления
на выходе

-


Пример

IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function()
{  
      IR.SendNotification("iRidium minimized", 0, 1, 1, "None");
});

работает только на iOS, не является push-уведомлением


IR.ClearNotification

очистить список локальных уведомлений, сгенерированных i3 pro на iOS устройстве

Синтаксис

IR.ClearNotification()

на входе значение описание

-

на выходе

-


Пример

IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function()
{  
      IR.ClearNotification();
});

работает только на iOS


IR.EVENT_RECIEVE_NOTIFY

идентификатор события, которое срабатывает, когда приложение получает локальное уведомление

Синтаксис

IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, function, [pointer]);

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


Пример

IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, notify)
function notify (text, id) 
{
   switch (id) 
   {
      case "Notify 1": // notification ID
      IR.ShowPopup("Popup 1");
      IR.GetItem("Popup 1").GetItem("Item 1").Text = text; // notification text
      break;
      case "Notify 2":
      IR.ShowPopup("Popup 2");
      IR.GetItem("Popup 2").GetItem("Item 1").Text = text;
      break;
   }
}





IR.EVENT_APP_ENTER_BACKGROUND

идентификатор события, которое срабатывает в момент сворачивания и закрытия приложения на iOS или Android устройстве

Синтаксис

IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function()
{
   IR.Log("app minimized"); 
});

событие не сработает при аварийном закрытии (падении) приложения


IR.EVENT_APP_ENTER_FOREGROUND

идентификатор события, которое срабатывает в момент разворачивания приложения на iOS или Android устройстве

Синтаксис

IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function()
{
   IR.Log("app maximized"); 
});

событие не сработает при старте приложения


IR.EVENT_APP_WILL_TERMINATE

идентификатор события, которое срабатывает сразу перед тем, как приложение на iOS или Android будет завершено.

Синтаксис

IR.AddListener(IR.EVENT_APP_WILL_TERMINATE, 0, function, [pointer]);

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

-


Пример

IR.AddListener(IR.EVENT_APP_WILL_TERMINATE, 0, function()
{
   IR.Log("app will be closed right now"); 
});

событие не сработает при аварийном завершении приложения