Вспомогательные функции нативных приложений

Ниже описаны нативные функции выполняемые в мобильном приложении, которые позволяют получить доступ к функциям устройства. Обработка данных функций предусмотрена в 1С-Битрикс с установленным модулем "Платформа для создания сервиса поиска исполнителей".

Для тестирования имеются уже собранные приложения, в котором можно указать свой сервер и проверить работу приложения:
iOS: https://itunes.apple.com/ru/app/id1212473742
Android: https://play.google.com/store/apps/details?id=ru.servicepi.app

Необходимо учитывать что при указании сервера server.ru, приложение будет стартовать страницу по адресу  http://server.ru/youdo. При необходимости сделайте редирект на нужную вам папку.

В общем порядке нативные функции вызываются из JS посредством команды:

app.exec("function", param)

где function - соответствующая функция, param - опционально указываются параметры в виде JSON строки.

Например:

app.exec("loadPageStart", "{\"url\": \"https://russian.servicepi.ru/youdo/executors\", \"title\": \"Исполнители\"}");

Реализованные функции

loadPageStart [iOS/Android]

Нативный переход между экранами без сохранения истории для перехода назад.

Параметры:

  • url - ссылка на загружаемую страницу
  • title - заголовок экрана

Пример:

app.exec("loadPageStart", "{\"url\": \"https://russian.servicepi.ru/youdo/executors\", \"title\": \"Исполнители\"}");

loadPageBlank [iOS/Android]

Нативный переход между экранами с возможностью быстро перейти на экран назад.
Параметры:

  • url - ссылка на загружаемую страницу
  • title - заголовок экрана

Пример:

app.exec("loadPageBlank", "{\"url\": \"https://russian.servicepi.ru/youdo/executors\", \"title\": \"Исполнители\"}");

enableMenu [iOS/Android]

Разрешить доступ к левому меню, иконка меню станет доступна для нажатия.

Параметры отсутствуют.

Пример:

app.exec("enableMenu");

closeController [iOS/Android]

Нативный переход к предыдущему экрана, при наличии истории созданной функцией loadPageBlank.

Параметры отсутствуют.

Пример:

app.exec("closeController");

reload [iOS/Android]

Перезагрузка текущей страницы.

Параметры отсутствуют.

Пример:

app.exec("reload");

onCustomEvent [iOS/Android]

Вызов события с любой страницы. Например, при авторизации обновить другие страницы.

Параметры:

  • eventName - название события
  • params - параметры события, необязательный параметр

Пример:

BX.onCustomEvent = function (eventName, params) {
    alert("Событие в мобильном "+eventName+" "+params[0]["param1"]);
    return;
}
BX.onGlobalCustomEvent = function () {
}

function action(){
    app.exec("onCustomEvent", "{\"eventName\": \"onLogin\", \"params\":{\"param1\":\"Параметр1\"}}");
};

или

BX.onCustomEvent = function (eventName) {
    alert("Событие в мобильном "+eventName);
    return;
}
BX.onGlobalCustomEvent = function () {
}

function action(){
    app.exec("onCustomEvent", "{\"eventName\": \"onLogin\"}");
};

setColors [iOS/Android]

Изменяет цвет надписи и фона нативного заголовка.

Параметры:

  • titleText - цвет в шестнадцитиричном формате (hex) текста заголовка
  • background - цвет фона заголовка

Пример:

app.exec("setColors", "{\"titleText\": \"ff0000\", \"background\": \"454545\"}");

closeBar [iOS/Android]

Скрывает нативный навигационный заголовок.

Параметры отсутствуют.

Пример:

app.exec("openBar");

openBar [iOS/Android]

Показывает нативный навигационный заголовок.

Параметры отсутствуют.

Пример:

app.exec("openBar");

getQRCode [iOS/Android]

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

Параметры:

  • callback - индекс функции полученный с помощью app.RegisterCallBack, которая будет вызвана для получение считанного значения в QR.

Пример:

function readQR(){
    var callbackIndex = app.RegisterCallBack(getQRCode);
    app.exec("getQRCode", {callback: callbackIndex});

    function getQRCode(param) {
        alert(param.CODE);
    }
};

getContacts [iOS/Android]

Позволяет получить контакты из записной книжки телефона с разрешения пользователя.

Параметры:

  • callback - индекс функции полученный с помощью app.RegisterCallBack, которая будет вызвана для получение контактов

Пример:

function exportContact(){
    var callbackIndex = app.RegisterCallBack(importContacts);
    app.exec("getContacts", {callback: callbackIndex});

    function importContacts(param) {
        alert(param.CODE); // Данные в строке JSON
        //Далее например передать их на сервер для дальнейшей работы посредством ajax
    }
};

copy [только iOS]

Вставка в буфер обмена текста.

Параметры:

  • text - текст или ссылка которым будем делиться

Пример:

app.exec("copy", "{\"text\":\"Текст для копирования в буфер\"}");

locationSettings [только Android]

Вызов настроек для включения GPS.

Параметры отсутствуют.

Пример:

app.exec("locationSettings")

openDocument [iOS/Android]

Откроет ссылку на сайт во внешнем браузере.

Параметры:


  • url - ссылка на сайт, который необходимо открыть во внешнем браузере

Пример:

app.exec("openDocument", "{\"url\":\"http://servicepi.ru\"}");

Функции в разработке

functionNative [iOS/Android]

Пример нативной функции демонстрирующая получение и передачу параметров из веба в натив и обратно.

share [iOS/Android]

Нативная функция поделиться с помощью приложений определенный в операционной системе.

Параметры:

  • text - текст или ссылка которым будем делиться

AuthVK [iOS/Android]

Нативная авторизация с помощью ВКонтакте.

Параметры отсутствуют.

AuthFB [iOS/Android]

Нативная авторизация с помощью Facebook.

Параметры отсутствуют.

AuthG [iOS/Android]

Нативная авторизация с помощью Google.

Параметры отсутствуют.

Сервис поддержки клиентов работает на платформе UserEcho