實作 Co-Doing API

Google Meet Live Share Co-Doing API 可用來同步處理會議參與者之間的任意資料。這項資料可以是應用程式所需的任何資料。

您必須將資料序列化為 Uint8Array,才能傳輸資料。詳情請參閱 JavaScript 標準程式庫參考資料

如果您不確定如何將資料序列化,請參閱下方的程式碼範例。

本指南說明如何實作 Co-Doing API。

建立 CoDoingClient

如要開始使用,請透過您在「開始使用」一節中建立的 AddonSession 建立 CoDoingClient

如要建立 CoDoingClient,請呼叫 AddonSession.createCoDoingClient 方法並提供 CoDoingDelegate

每當應用程式有新的狀態時,Co-Doing API 就會透過 CoDoingDelegate 更新應用程式。一般而言,在呼叫 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 替換為應用程式目前的狀態。