Skip to content

Класс B24Frame

Предназначен для управления приложениями Битрикс24. Он наследует функциональность от AbstractB24 и предоставляет методы для работы с аутентификацией, сообщениями, слайдерами и другими.

Реализует интерфейс TypeB24.

TIP

Работу с B24Frame можно протестировать в примере.

Конструктор

ts
constructor(queryParams: B24FrameQueryParams)

Тип B24FrameQueryParams описывает параметры, необходимые для инициализации фрейма приложения Битрикс24.

ПолеТипОписание
DOMAINstringДоменное имя аккаунта Битрикс24.
PROTOCOLbooleanПротокол соединения
LANGstringЯзык интерфейса Битрикс24.
APP_SIDstringИдентификатор сессии приложения.

Геттеры

isInit

ts
get isInit(): boolean

Указывает, инициализированы ли данные. Аналог функции

isFirstRun

ts
get isFirstRun(): boolean

Возвращает флаг, указывающий, является ли это первым запуском приложения. Аналог функции

isInstallMode

ts
get isInstallMode(): boolean

Возвращает флаг, указывающий, находится ли приложение в режиме установки. Аналог функции

auth

ts
get auth(): AuthManager

Возвращает менеджер авторизации.

parent

ts
get parent(): ParentManager

Возвращает менеджер родительского окна.

slider

ts
get slider(): SliderManager

Возвращает менеджер слайдеров.

placement

ts
get placement(): PlacementManager

Возвращает менеджер встроек.

options

ts
get options(): OptionsManager

Возвращает менеджер опций.

dialog

ts
get dialog(): DialogManager

Возвращает менеджер диалогов.

Методы

INFO

Реализует интерфейс TypeB24.

installFinish

ts
async installFinish(): Promise<any>

Сигнализирует о завершении установки приложения. Аналог функции

getAppSid

ts
getAppSid(): string

Возвращает идентификатор приложения относительно родительского окна.

getLang

ts
getLang(): B24LangList

Возвращает локализацию интерфейса Битрикс24. Аналог функции

Использование

Этот код создает экземпляр B24Frame для взаимодействия с API Битрикс24 и выполняет пакетный запрос для получения списка компаний, сортируя их по идентификатору в порядке убывания.

Полученные данные преобразуются в массив объектов с полями id, title и createdTime, после чего результаты выводятся в консоль, а в случае ошибки выводится сообщение об ошибке.

WARNING

Код должен запускаться в качестве приложения Битрикс24 (во фрейме).

ts
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>
html
<!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>
vue
<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>

Опубликовано под лицензией MIT.