現在ドキュメントは制作段階にあるため、多くの情報が不完全なものになっています

報告は Discord までお願いします

セッション

概要

親子関係を持つアプリケーションを作成し、セッションを管理しましょう

子アプリケーションの定義

子アプリケーションを作成するには、

parentId
を設定した
App
オブジェクトを定義します

1
// 子アプリケーションの定義
2
const CHILD_APP = new App('com.omuapps:child', {
3
    parentId: PARENT_APP, // 親アプリケーションを指定(必須)
4
    url: 'omuapps.com/app/child', // 子アプリケーションのURL
5
});

トークンの生成と接続

子アプリケーションに接続するためのトークンを生成します

1
// 子アプリケーション用のトークンを生成
2
const params = await omu.sessions.generateToken({
3
    app: CHILD_APP,
4
    permissions: [
5
        OmuPermissions.ASSET_PERMISSION_ID, // 必要な権限を指定することで権限の確認をスキップできます
6
        // その他の権限...
7
    ],
8
});
9

10
// 生成されたパラメータ
11
console.log(params.token);  // 子アプリケーション接続用トークン
12
console.log(params.address); // 接続先アドレス
13

14
// 子アプリケーション接続用のURLを作成
15
const url = new URL('https://omuapps.com/app/child');
16
url.searchParams.set(BrowserSession.PARAM_NAME, JSON.stringify(params));
17

18
// このURLを開くことで子アプリケーションが接続されます
19
console.log(url.toString());

注意点

  • トークンを生成できるのは子の親アプリであるかつ、子のIDは親のIDより下にある必要があります
  • 子は親が持っている権限以上の権限を持つことができません

セッションの要求と監視

子アプリケーションのセッションを管理するには、以下のメソッドを使用します

1
// 子アプリケーションのセッションを要求
2
omu.sessions.require(CHILD_APP);
3

4
// 子アプリケーションの接続状態を監視
5
const observer = omu.sessions.observe(CHILD_APP);
6

7
// 子アプリケーションが接続されたときの処理
8
observer.onConnect((app) => {
9
    console.log(`子アプリケーションが接続されました: ${app.id.key()}`);
10
});
11

12
// 子アプリケーションが切断されたときの処理
13
observer.onDisconnect((app) => {
14
    console.log(`子アプリケーションが切断されました: ${app.id.key()}`);
15
});
使用するパッケージマネージャー