Класс B24Frame
Предназначен для управления приложениями Битрикс24. Он наследует функциональность от AbstractB24
и предоставляет методы для работы с аутентификацией, сообщениями, слайдерами и другими.
Реализует интерфейс TypeB24
.
TIP
Работу с B24Frame можно протестировать в примере.
Конструктор
constructor(queryParams: B24FrameQueryParams)
Тип B24FrameQueryParams
описывает параметры, необходимые для инициализации фрейма приложения Битрикс24.
Поле | Тип | Описание |
---|---|---|
DOMAIN | string | Доменное имя аккаунта Битрикс24. |
PROTOCOL | boolean | Протокол соединения |
LANG | string | Язык интерфейса Битрикс24. |
APP_SID | string | Идентификатор сессии приложения. |
Геттеры
isInit
get isInit(): boolean
Указывает, инициализированы ли данные. Аналог функции
isFirstRun
get isFirstRun(): boolean
Возвращает флаг, указывающий, является ли это первым запуском приложения. Аналог функции
isInstallMode
get isInstallMode(): boolean
Возвращает флаг, указывающий, находится ли приложение в режиме установки. Аналог функции
auth
get auth(): AuthManager
Возвращает менеджер авторизации.
parent
get parent(): ParentManager
Возвращает менеджер родительского окна.
slider
get slider(): SliderManager
Возвращает менеджер слайдеров.
placement
get placement(): PlacementManager
Возвращает менеджер встроек.
options
get options(): OptionsManager
Возвращает менеджер опций.
dialog
get dialog(): DialogManager
Возвращает менеджер диалогов.
Методы
INFO
Реализует интерфейс TypeB24
.
installFinish
async installFinish(): Promise<any>
Сигнализирует о завершении установки приложения. Аналог функции
getAppSid
getAppSid(): string
Возвращает идентификатор приложения относительно родительского окна.
getLang
getLang(): B24LangList
Возвращает локализацию интерфейса Битрикс24. Аналог функции
Использование
Этот код создает экземпляр B24Frame
для взаимодействия с API Битрикс24 и выполняет пакетный запрос для получения списка компаний, сортируя их по идентификатору в порядке убывания.
Полученные данные преобразуются в массив объектов с полями id
, title
и createdTime
, после чего результаты выводятся в консоль, а в случае ошибки выводится сообщение об ошибке.
WARNING
Код должен запускаться в качестве приложения Битрикс24 (во фрейме).
import {
initializeB24Frame,
LoggerBrowser,
B24Frame,
Result,
EnumCrmEntityTypeId,
Text,
type ISODate
} from '@bitrix24/b24jssdk'
const $logger = LoggerBrowser.build('MyApp', import.meta.env?.DEV === true)
let $b24: B24Frame
initializeB24Frame()
.then((response: B24Frame) => {
$b24 = response
return $b24.callBatch({
CompanyList: {
method: 'crm.item.list',
params: {
entityTypeId: EnumCrmEntityTypeId.company,
order: { id: 'desc' },
select: [
'id',
'title',
'createdTime'
]
}
}
}, true )
})
.then((response: Result) => {
const data = response.getData()
const dataList = (data.CompanyList.items || []).map((item: any) => {
return {
id: Number(item.id),
title: item.title,
createdTime: Text.toDateTime(item.createdTime as ISODate)
}
})
$logger.info('response >> ', dataList)
$logger.info('load >> stop ')
})
.catch((error) => {
$logger.error(error)
})
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bitrix24 Frame Demo</title>
</head>
<body>
<p>See the result in the developer console</p>
<script src="https://unpkg.com/@bitrix24/b24jssdk@latest/dist/umd/index.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', async () => {
try
{
const $logger = B24Js.LoggerBrowser.build('MyApp', true);
let $b24;
$b24 = await B24Js.initializeB24Frame();
const response = await $b24.callBatch({
CompanyList: {
method: 'crm.item.list',
params: {
entityTypeId: B24Js.EnumCrmEntityTypeId.company,
order: { id: 'desc' },
select: [
'id',
'title',
'createdTime'
]
}
}
}, true );
const data = response.getData();
const dataList = (data.CompanyList.items || []).map((item) => {
return {
id: Number(item.id),
title: item.title,
createdTime: B24Js.Text.toDateTime(item.createdTime)
}
});
$logger.info('response >> ', dataList);
$logger.info('load >> stop ');
}
catch (error)
{
console.error(error);
}
});
</script>
</body>
</html>
<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
import {
initializeB24Frame,
LoggerBrowser,
B24Frame,
EnumCrmEntityTypeId,
Text,
type ISODate
} from '@bitrix24/b24jssdk'
const $logger = LoggerBrowser.build('MyApp', import.meta.env?.DEV === true)
let $b24: B24Frame
onMounted(async () => {
try
{
$b24 = await initializeB24Frame()
const response = await $b24.callBatch({
CompanyList: {
method: 'crm.item.list',
params: {
entityTypeId: EnumCrmEntityTypeId.company,
order: { id: 'desc' },
select: [
'id',
'title',
'createdTime'
]
}
}
}, true)
const data = response.getData()
const dataList = (data.CompanyList.items || []).map((item: any) => {
return {
id: Number(item.id),
title: item.title,
createdTime: Text.toDateTime(item.createdTime as ISODate)
}
})
$logger.info('response >> ', dataList)
$logger.info('load >> stop ')
}
catch (error)
{
$logger.error(error)
}
})
onUnmounted(() => {
$b24?.destroy()
})
</script>
<template>
<p>See the result in the developer console</p>
</template>