了解Metaframe方法和事件
window.metaframe 对象
加载脚本后,metaframe
对象在应用程序的全局window
对象中可用。metaframe对象包含管理Web应用中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;
在您的Web应用中初始化元框架。
参数 | 类型 | 描述 |
---|---|---|
parameters | object | 包含启动元框架参数的对象。 |
parameters.loginProjectId | string | 登录管理器ID。要获取该ID,请打开发布商帐户,然后前往登录管理器 > 仪表板 > 您的登录管理器项目部分。必需。 |
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 | 元框架小组件相对于视口的上边距(单位:px)。默认值为16 。 |
parameters.parameters.layoutSettings.mobile | object | 包含自定义移动版小组件布局参数的对象。必需。 |
parameters.layoutSettings.mobile.widgetMarginTop | number | 元框架小组件相对于视口的上边距(单位: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 | 调用API方法创建商品时传递的商品内部ID。 |
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 | 调用window.metaframe.create 方法后成功加载Metaframe时,触发此事件。 |
@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:custom-action:<ACTION_ID> | 用户在Metaframe中选择操作类型的自定义区段时,触发此事件。有关更多信息,请参阅跟踪自定义区段的事件。 |
跟踪自定义区段的事件
您可以在元框架中添加“操作”类型的自定义区段。此区段将显示为一个按钮,单击后执行相应操作,如打开网站。
要跟踪单击自定义区段的事件,您需要订阅@metaframe:custom-action:<ACTION_ID>
事件,其中<ACTION_ID>
是在发布商帐户中设置自定义区段时生成的操作ID。
设置自定义区段点击事件侦听器的示例:
- javascript
document.addEventListener("@metaframe:custom-action:00000000-0000-0000-0000-000000000000", () => {
// Your code here...
})
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。