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;
ウェブアプリケーションでメタフレームを初期化します。
パラメータ | 種類 | 説明文 |
---|---|---|
parameters | object | メタフレームを起動するためのパラメーターを持つオブジェクト。 |
parameters.loginProjectId | string | ログイン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 に設定すると、デスクトップ版に切り替わります。 |
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を押します。