Frame
Frame — основной объект SDK, представляющий текущее мини‑приложение в iframe платформы Аспро.Cloud. Является singleton — создаётся один раз через initialize() или обёртку App.initializeFrame().
import { Frame } from '@aspro-cloud/miniapp-jssdk'Свойства
Modal
Ссылка на класс Modal
static Modal: typeof ModalSidepanel
Ссылка на класс Sidepanel
static Sidepanel: typeof SidepanelSwal
Ссылка на класс Swal
static Swal: typeof SwalToast
Ссылка на класс Toast
static Toast: typeof Toastdomain
Домен текущего аккаунта платформы Аспро.Cloud
get domain(): stringevents
Объект типа EventCallbacks<FrameEventName> с обработчиками событий
get events(): EventCallbacks
set events(value: EventCallbacks)https
Флаг HTTPS соединения
get https(): booleanlanguage
Текущий язык интерфейса платформы
get language(): stringoptions
Экземпляр Options для работы с настройками приложения
get options(): Optionsrest
Экземпляр Rest для вызовов Rest API
get rest(): ResttargetOrigin
Origin родительского окна, вычисляется автоматически
get targetOrigin(): stringuniqid
Уникальный идентификатор места встройки приложения
get uniqid(): stringuserOptions
Экземпляр UserOptions для работы с настройками текущего пользователя
get userOptions(): UserOptionsМетоды
initialize
Инициализирует мини‑приложение внутри iframe платформы Аспро.Cloud и возвращает singleton экземпляр Frame. Рекомендуется использовать обёртку App.initializeFrame()
static async initialize(params?: FrameParams): Promise<Frame>| Параметр | Тип | Описание |
|---|---|---|
params | FrameParams | Параметры инициализации |
События метода initialize():
| Событие | Параметр | Тип | Описание |
|---|---|---|---|
'onReady' | Вызывается после того, как содержимое iframe загружено (DOMContentLoaded), Frame инициализирован и контекст получен, содержимое встроки отображено | ||
context | FrameContext | Контекст приложения |
Ошибки
Метод выбросит ошибку если:
- приложение запущено не в браузере
- приложение запущено не внутри iframe
- не удалось определить домен аккаунта платформы
getInstance
Возвращает текущий singleton экземпляр Frame. Вызывать только после initialize()
static getInstance(): Framedestroy
Удаляет подписки и освобождает ресурсы
destroy(): voidgetContext
Возвращает FrameContext — контекст текущего приложения
async getContext(): Promise<FrameContext>openHomepage
Открывает домашнюю страницу приложения в интерфейсе платформы, если домашняя страница есть в списке мест встройки в манифесте текущей установленной версии приложения
async openHomepage(params: FrameOpenHomepageParams): Promise<any>| Параметр | Тип | Описание |
|---|---|---|
params | FrameOpenHomepageParams | Параметры |
События метода openHomepage():
| Событие | Параметр | Тип | Описание |
|---|---|---|---|
'onOpen' | Домашняя страница приложения открыта | ||
'onCancel' | Открытие отменено |
openUrl
Открывает URL в интерфейсе платформы. При переходе на внешний ресурс платформа запросит у пользователя подтверждение и откроет ссылку в новой вкладке браузера
async openUrl(params: FrameOpenUrlParams): Promise<any>| Параметр | Тип | Описание |
|---|---|---|
params | FrameOpenUrlParams | Параметры |
События метода openUrl():
| Событие | Параметр | Тип | Описание |
|---|---|---|---|
'onOpen' | URL успешно открыт | ||
'onCancel' | Пользователь отменил действие |
Пример
import { App, Toast } from '@aspro-cloud/miniapp-jssdk'
const frame = await App.initializeFrame({
events: {
onReady: (context) => {
console.log(`Приложение готово к работе, полученный контекст: ${context}`)
}
}
})
// переход на страницу внутри платформы
await frame.openUrl({
url: '/_module/crm/view/account_view/47547'
})
// переход на внешний ресурс (откроется в новой вкладке с подтверждением)
await frame.openUrl({
url: 'https://aspro.cloud',
events: {
onOpen: () => console.log('Переход выполнен'),
onCancel: () => console.log('Пользователь отменил переход')
}
})const App = window.ACloudMiniApp
const frame = await App.initializeFrame({
events: {
onReady: (context) => {
console.log(`Приложение готово к работе, полученный контекст: ${context}`);
}
}
});
// переход на страницу внутри платформы
await frame.openUrl({
url: '/_module/crm/view/account_view/47547'
});
// переход на внешний ресурс (откроется в новой вкладке с подтверждением)
await frame.openUrl({
url: 'https://aspro.cloud',
events: {
onOpen: () => console.log('Переход выполнен'),
onCancel: () => console.log('Пользователь отменил переход')
}
});