Обработать первый запуск приложения у пользователя BX24.install

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
BX24.install(someCallback: function | string): void;

Функция BX24.install регистрирует обработчик события «приложение запускается первый раз для текущего пользователя». Событие возникает сразу после события «библиотека готова к работе», но до запуска обработчиков, установленных в BX24.init.

Обработчик обязан сообщить о завершении настройки вызовом BX24.installFinish. Пока он этого не сделал, обработчики BX24.init не запускаются.

Механика первого запуска нужна приложению с интерфейсом. Приложению, которое использует только API, она не нужна — подробнее BX24.installFinish.

Первый запуск у пользователя — не то же самое, что установка приложения. У приложения с интерфейсом установку выполняет страница установки — та, что задана в настройках приложения. Ее открывают только администратор и пользователь с правом устанавливать приложения, остальные видят сообщение о том, что приложение не установлено. Состояние установки проверяют методом app.info.

Обработчик BX24.install срабатывает у каждого пользователя и настраивает приложение под него. Этапы разбирает BX24.installFinish, порядок установки описывает раздел Установка приложения.

Функция работает только внутри фрейма приложения. Собственный scope ей не нужен: она не обращается к REST API. Права проверяются в тех методах Битрикс24, которые вызывает сам обработчик.

Параметры функции

Обязательные параметры отмечены *

Название
тип

Описание

someCallback*
function | string

Обработчик первого запуска. Вызывается без параметров, возвращаемое им значение библиотека игнорирует и промис не ждет: о завершении говорит только вызов BX24.installFinish. Вместо функции принимает строку — адрес js-файла. Типы описывает словарь типов данных.

Вызов без параметра игнорируется. Значение другого типа — например, число или объект — приводит к ошибке в браузере

Когда возникает событие

Событие подчиняется таким правилам:

  • первый запуск отслеживает Битрикс24 и сообщает о нем библиотеке при инициализации. Обработчик должен переживать повторный запуск: он сработает у каждого пользователя, а после обновления приложения может сработать снова
  • обработчиков может быть несколько: они выполняются по очереди, в порядке регистрации, и каждый передает управление следующему вызовом BX24.installFinish
  • после последнего обработчика Битрикс24 запоминает, что приложение у этого пользователя уже запускалось
  • без зарегистрированных обработчиков событие не возникает, и обработчики BX24.init выполняются сразу

Регистрируйте обработчик при загрузке страницы приложения — до того, как библиотека получит данные от Битрикс24. Обработчик, зарегистрированный позже, в цепочку первого запуска не попадет.

Функции BX24.userOption и BX24.appOption внутри обработчика первого запуска еще не работают: библиотека подключает их вместе с обработчиками BX24.init, то есть после всей цепочки. Чтобы прочитать или записать настройку на этом этапе, вызывайте методы user.option.set и app.option.set.

Примеры кода

Как использовать примеры в документации

Внутри обработчика вызывают методы Битрикс24 через BX24.callMethod.

<script src="//api.bitrix24.tech/api/v1/"></script>
<script>
    // регистрируем обработчик сразу при загрузке страницы: позже он в цепочку первого запуска не попадет
    BX24.install(function() {
        BX24.callMethod('user.current', {}, function(res) {
            if (res.error()) {
                console.error('Error fetching user data: ', res.error());
            } else {
                console.log('Приложение Hello World приветствует вас, ' + res.data().NAME + '!');
                // запоминаем, что настройка прошла: обработчик должен переживать повторный запуск
                BX24.callMethod('user.option.set', {options: {greeting_shown: 'Y'}});
            }

            // installFinish вызываем в обеих ветках, иначе настройка не завершится
            BX24.installFinish();
        });
    });
</script>

Тот же обработчик можно вынести в отдельный js-файл и передать его адрес строкой — абсолютный или заданный относительно адреса страницы приложения. Библиотека подключает файл тегом script и выполняет его вместо вызова функции. Вызвать BX24.installFinish в этом случае должен код самого файла, но не синхронно при загрузке: цепочку библиотека подключает к функции только после того, как файл выполнился. Ранний вызов управление дальше не передаст, а на этапе инсталлятора завершит установку досрочно.

BX24.install('/install.js');

Обработка ответа

Функция не возвращает данные (void). Она только регистрирует обработчик, а результат работы обработчика определяет его собственный код.

Обработка ошибок

Своих кодов ошибок у функции нет: она не обращается к REST API.

Ситуация

Что происходит

Что делать

Обработчик не вызвал BX24.installFinish

Цепочка останавливается: следующие обработчики и обработчики BX24.init не выполняются, первый запуск не считается завершенным, и при следующем открытии приложения обработчик запустится снова

Вызывать installFinish во всех ветках обработчика, включая ветку ошибки

В обработчике возникло необработанное исключение

Библиотека показывает браузерный alert с текстом Installation failed!, подробности пишутся в консоль, цепочка обработчиков останавливается. Так ловятся только синхронные исключения: ошибка внутри вложенного обработчика остается без alert, и цепочка останавливается молча

Обрабатывать ошибки внутри обработчика самостоятельно

Файл из строкового варианта не загрузился

Библиотека ждет его бесконечно: цепочка обработчиков останавливается, ошибки в интерфейсе нет

Проверить адрес файла и его доступность из браузера

Функция вызвана вне фрейма приложения

Библиотека не инициализируется: при загрузке она выбрасывает исключение Unable to initialize Bitrix24 JS library!, объект BX24 становится равен null

Открывать страницу как приложение Битрикс24

Продолжите изучение