Методы и события Metaframe
Объект window.metaframe
После загрузки скрипта объект metaframe
будет доступен в глобальном объекте window
вашего приложения. Объект metaframe содержит список методов, необходимых для управления Metaframe в вашем веб-приложении.
Метод window.metaframe.create
Сигнатура метода:
window.metaframe.create: (parameters: {
loginProjectId: string,
merchantId?: number,
projectId?: number,
orbsApiHostId?: string,
isMobile?: boolean,
isCollapsed?: boolean,
layoutSettings?: {
desktop: {
widgetMarginTop?: number,
},
mobile: {
widgetMarginTop?: number,
},
},
}) => void;
Инициализирует Metaframe в вашем веб-приложении.
Параметр | Тип | Описание |
---|---|---|
parameters | object | Объект с параметрами для запуска Metaframe. |
parameters.loginProjectId | string | ID варианта авторизации. Чтобы получить его, откройте проект в Личном кабинете, перейдите в раздел Login > Дашборд > проект авторизации. Обязательный. |
parameters.merchantId | string | ID продавца. Вы можете найти этот параметр в Личном кабинете:
|
parameters.projectID | string | ID проекта. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта.Обязательный, если в настройках проекта в Личном кабинете активирована функция Рюкзак. |
parameters.orbsApiHostId | string | ID хоста. Для его получения обратитесь к команде интеграции через integration@xsolla.com или к персональному менеджеру проекта через csm@xsolla.com и передайте ID проекта и ID продавца.Обязательный, если в настройках проекта в Личном кабинете активирована функция Виртуальные валюты. |
parameters.isMobile | boolean | Использует ли Metaframe мобильную версию по умолчанию. |
parameters.isCollapsed | boolean | Отображается ли виджет в свернутом (минимизированном) виде по умолчанию. Значение по умолчанию — true . |
parameters.layoutSettings | object | Объект с параметрами для настройки верстки виджета. |
parameters.layoutSettings.desktop | object | Объект с параметрами для настройки верстки настольной версии виджета. Обязательный. |
parameters.layoutSettings.desktop.widgetMarginTop | number | Верхний отступ для виджета Metaframe относительно области просмотра (в px). Значение по умолчанию — 16 . |
parameters.parameters.layoutSettings.mobile | object | Объект с параметрами для настройки верстки мобильной версии виджета. Обязательный. |
parameters.layoutSettings.mobile.widgetMarginTop | number | Верхний отступ для виджета Metaframe относительно области просмотра (в px). Значение по умолчанию — 72 . |
Метод window.metaframe.setIsMobile
Сигнатура метода:
window.metaframe.setIsMobile(isMobile: boolean)
Переключает Metaframe с настольной на мобильную версию или наоборот.
Параметр | Тип | Описание |
---|---|---|
isMobile | boolean | Следует ли переключать Metaframe на мобильную версию. Если установлено значение true , то Metaframe переключится на мобильную версию. Если установлено значение false , то Metaframe переключится на настольную версию. |
Объект window.metaframe.partnerActions
Объект содержит методы для инициирования действий в Metaframe.
Перед использованием методов этого объекта необходимо убедиться, что Metaframe полностью загружен. Для этого необходимо подписаться на событие загрузки Metaframe. Если событие было обработано, то методы объекта доступны.
Пример установки слушателя на событие загрузки Metaframe:
- javascript
window.addEventListener("@metaframe-partner-events:app-loaded", () => {
//Here you can use partner actions
});
Метод window.metaframe.partnerActions.openBackpackItemPage
Сигнатура метода:
openBackpackItemPage: (itemId: string) => void;
Открывает страницу указанного товара в разделе
Для корректной работы метода необходимо соблюдение следующих условий:
- В Личном кабинете активирована функция Рюкзак.
- Пользователь авторизовался в Metaframe.
Параметр | Тип | Описание |
---|---|---|
itemId | string | Внутренний ID предмета, который передается при вызове метода API на создание предмета. |
Метод window.metaframe.partnerActions.openLogin
Сигнатура метода:
openLogin: () => void;
Открывает форму авторизации пользователя. Если пользователь уже авторизован, в браузерную консоль выводится ошибка.
Метод window.metaframe.partnerActions.openProfile
Сигнатура метода:
openProfile: () => void;
Открывает раздел
Метод window.metaframe.partnerActions.openWallet
Сигнатура метода:
openWallet: () => void;
Открывает раздел
Метод window.metaframe.partnerActions.openBackpack
Сигнатура метода:
openBackpack: () => void;
Открывает раздел
- В Личном кабинете активирована функция Рюкзак.
- Пользователь авторизовался в Metaframe.
Метод window.metaframe.partnerActions.openCustomMiniApp
Сигнатура метода:
openCustomMiniApp: (params: {miniAppName: string}) => void;
Открывает указанный пользовательский раздел с типом Iframe при соблюдении одного из следующих условий:
- Если в настройках указанного пользовательского раздела переключатель Показывать это приложение перед авторизацией пользователя установлен в активное приложение и текущий пользователь не авторизован.
- Если в настройках указанного пользовательского раздела переключатель Показывать это приложение после авторизации пользователя установлен в активное приложение и текущий пользователь авторизован.
Если условия не выполняются, в браузерную консоль выводится ошибка.
Параметр | Тип | Описание |
---|---|---|
params | object | Объект с параметрами. |
params.miniAppName | string | Имя приложения, указанное в настройках пользовательского раздела с типом Iframe. Обязательный. |
Метод window.metaframe.partnerActions.pushNotification
Сигнатура метода:
pushNotification: (params: {
type: string; // use “success”, “warning”, “error” or “info”
text: string;
button?: {
text: string;
onClick: () => void;
};
durationInMs?: number;
}) => void;
Помещает новое уведомление в очередь.
Параметр | Тип | Описание |
---|---|---|
params | object | Объект с параметрами. |
paramps.type | string | Тип уведомления. Возможные значения: “success” , “warning” , “error” , “info” . Обязательный. |
paramps.text | string | Текст уведомления. Обязательный. |
params.button.text | string | Текст кнопки. Обязательный. |
params.button.onClick | () => void | Функция, которая вызывается при нажатии на кнопку. Обязательный. |
params.durationInMs | number | Время отображения уведомления на экране (в миллисекундах). |
Метод window.metaframe.partnerActions.setIsCustomMiniAppVisible
Сигнатура метода:
setIsCustomMiniAppVisible: (params: {
miniAppName: string;
isVisible: boolean;
}) => void;
Отображает или скрывает указанный пользовательский раздел.
Параметр | Тип | Описание |
---|---|---|
params | object | Объект с параметрами. |
params.miniAppName | string | Имя приложения, указанное в настройках пользовательского раздела. Обязательный. |
params.isVisible | boolean | Отображать ли указанный пользовательский раздел в виджете. Обязательный. |
События виджета
Вы можете подписаться на следующие события Metaframe:
Параметр | Тип |
---|---|
@metaframe-partner-events:app-loaded | Событие срабатывает при успешной загрузке Metaframe после вызова метода window.metaframe.create . |
@metaframe-partner-events:not-authorized-mini-apps-loaded | Событие срабатывает при успешной загрузке пользовательских разделов, в настройках которых переключатель Показывать это приложение перед авторизацией пользователя установлен в активное приложение. |
@metaframe-partner-events:authorized-mini-apps-loaded | Событие срабатывает при успешной загрузке настроенных разделов виджета, в том числе пользовательских разделов, в настройках которых переключатель Показывать это приложение после авторизации пользователя установлен в активное приложение. |
@metaframe-partner-events:login-successful | Событие срабатывает при успешной авторизации пользователя в Metaframe и содержит объект detail с авторизационным токеном пользователя. |
@metaframe-partner-events:logout-successful | Событие срабатывает при успешном выходе пользователя из системы. |
@metaframe-partner-events:mini-app-menu-button-clicked:<YOUR_MINI_APP_NAME> | Событие срабатывает, если пользователь выбирает в Metaframe пользовательский раздел. |
@metaframe:custom-action:<ACTION_ID> | Событие срабатывает, если пользователь выбирает в Metaframe пользовательский раздел с типом Действие. Подробные сведения приведены в разделе Отслеживание событий пользовательских разделов. |
Отслеживание событий пользовательских разделов
Вы можете добавить в Metaframe пользовательский раздел с типом Action. Такой раздел отображается в виде кнопки, при нажатии на которую совершается действие, например, переход на веб-сайт.
Для отслеживания события выбора пользовательского раздела вам требуется подписаться на событие @metaframe:custom-action:<ACTION_ID>
, гдe <ACTION_ID>
— ID действия, сформированный в Личном кабинете при настройке пользовательского раздела.
Пример установки слушателя на событие выбора пользовательского раздела:
- javascript
document.addEventListener("@metaframe:custom-action:00000000-0000-0000-0000-000000000000", () => {
// Your code here...
})
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.