Skip to content

Frame

Frame — основной объект SDK, представляющий текущее мини‑приложение в iframe платформы Аспро.Cloud. Является singleton — создаётся один раз через initialize() или обёртку App.initializeFrame().

ts
import { Frame } from '@aspro-cloud/miniapp-jssdk'

Свойства

Ссылка на класс Modal

ts
static Modal: typeof Modal

Sidepanel

Ссылка на класс Sidepanel

ts
static Sidepanel: typeof Sidepanel

Swal

Ссылка на класс Swal

ts
static Swal: typeof Swal

Toast

Ссылка на класс Toast

ts
static Toast: typeof Toast

domain

Домен текущего аккаунта платформы Аспро.Cloud

ts
get domain(): string

events

Объект типа EventCallbacks<FrameEventName> с обработчиками событий

ts
get events(): EventCallbacks
set events(value: EventCallbacks)

https

Флаг HTTPS соединения

ts
get https(): boolean

language

Текущий язык интерфейса платформы

ts
get language(): string

options

Экземпляр Options для работы с настройками приложения

ts
get options(): Options

rest

Экземпляр Rest для вызовов Rest API

ts
get rest(): Rest

targetOrigin

Origin родительского окна, вычисляется автоматически

ts
get targetOrigin(): string

uniqid

Уникальный идентификатор места встройки приложения

ts
get uniqid(): string

userOptions

Экземпляр UserOptions для работы с настройками текущего пользователя

ts
get userOptions(): UserOptions

Методы

initialize

Инициализирует мини‑приложение внутри iframe платформы Аспро.Cloud и возвращает singleton экземпляр Frame. Рекомендуется использовать обёртку App.initializeFrame()

ts
static async initialize(params?: FrameParams): Promise<Frame>
ПараметрТипОписание
paramsFrameParamsПараметры инициализации

События метода initialize():

СобытиеПараметрТипОписание
'onReady'Вызывается после того, как содержимое iframe загружено (DOMContentLoaded), Frame инициализирован и контекст получен, содержимое встроки отображено
contextFrameContextКонтекст приложения

Ошибки

Метод выбросит ошибку если:

  • приложение запущено не в браузере
  • приложение запущено не внутри iframe
  • не удалось определить домен аккаунта платформы

getInstance

Возвращает текущий singleton экземпляр Frame. Вызывать только после initialize()

ts
static getInstance(): Frame

destroy

Удаляет подписки и освобождает ресурсы

ts
destroy(): void

getContext

Возвращает FrameContext — контекст текущего приложения

ts
async getContext(): Promise<FrameContext>

openHomepage

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

ts
async openHomepage(params: FrameOpenHomepageParams): Promise<any>
ПараметрТипОписание
paramsFrameOpenHomepageParamsПараметры

События метода openHomepage():

СобытиеПараметрТипОписание
'onOpen'Домашняя страница приложения открыта
'onCancel'Открытие отменено

openUrl

Открывает URL в интерфейсе платформы. При переходе на внешний ресурс платформа запросит у пользователя подтверждение и откроет ссылку в новой вкладке браузера

ts
async openUrl(params: FrameOpenUrlParams): Promise<any>
ПараметрТипОписание
paramsFrameOpenUrlParamsПараметры

События метода openUrl():

СобытиеПараметрТипОписание
'onOpen'URL успешно открыт
'onCancel'Пользователь отменил действие

Пример

ts
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('Пользователь отменил переход')
  }
})
js
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('Пользователь отменил переход')
  }
});

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