Google Meet Live Sharing Co-Doing API は、会議の参加者間で任意のデータを同期するために使用されます。アプリが依存する任意のデータを指定できます。
送信するには、データを Uint8Array
にシリアル化する必要があります。詳しくは、JavaScript 標準ライブラリ リファレンスをご覧ください。
データをシリアル化する方法がわからない場合は、以下のコードサンプルをご覧ください。
このガイドでは、Co-Doing API の実装方法について説明します。
CoDoingClient
を作成する
まず、スタートガイドで作成した AddonSession
から CoDoingClient
を作成します。
CoDoingClient
を作成するには、AddonSession.createCoDoingClient
メソッドを呼び出し、CoDoingDelegate
を指定します。
CoDoingDelegate
は、アプリが新しい状態が利用可能になったときに、Co-Doing API がアプリを更新する方法です。CoDoingDelegate.onCoDoingStateChanged
メソッドが呼び出されると、アプリはすぐに新しい状態を適用することが想定されています。
次のコードサンプルは、Co-Doing API の使用方法を示しています。
TypeScript
interface MyState {
someString: string;
someNumber: number;
}
/**
* Serialize/deserialize using JSON.stringify
* You can use any method you want; this is included for as an example
*/
function toBytes(state: MyState): Uint8Array {
return new TextEncoder().encode(JSON.stringify(state));
}
function fromBytes(bytes: Uint8Array): MyState {
return JSON.parse(new TextDecoder().decode(bytes)) as MyState;
}
const coDoingClient = await addonSession.createCoDoingClient({
activityTitle: "ACTIVITY_TITLE",
onCoDoingStateChanged(coDoingState: CoDoingState) {
const newState = fromBytes(coDoingState.bytes);
// This function should apply newState to your ongoing CoDoing activity
},
});
ACTIVITY_TITLE は、アクティビティのタイトルに置き換えます。
現状の管理
ユーザーがアプリ内で操作を行ったら、その直後に CoDoingClient.broadcastStateUpdate
を呼び出すことが想定されています。
次のコードサンプルは、CoDoingClient.broadcastStateUpdate
の実装を示しています。
TypeScript
const myState: MyState = {
someString: "SOME_STRING",
someNumber: 0
};
document.getElementById('some-button').onClick(() => {
myState.someNumber = myState.someNumber + 1;
coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});
SOME_STRING は、アプリの現在の状態に置き換えます。