Wdrażanie interfejsu Co-Doing API

Interfejs Google Meet Co-Doing API służy do synchronizowania dowolnych danych między uczestnikami spotkania. Mogą to być dowolne dane, od których zależy działanie aplikacji.

Aby dane mogły być przesyłane, musisz je zserializować do typu Uint8Array. Więcej informacji znajdziesz w dokumentacji standardowej biblioteki JavaScript.

Jeśli nie masz pewności, jak zserializować dane, przejrzyj przykłady kodu poniżej.

Z tego przewodnika dowiesz się, jak wdrożyć interfejs Co-Doing API.

Utwórz CoDoingClient

Zacznij od utworzenia CoDoingClient na podstawie AddonSession utworzonego na stronie Pierwsze kroki.

Aby utworzyć CoDoingClient, wywołaj metodę AddonSession.createCoDoingClient i podaj CoDoingDelegate.

CoDoingDelegate to sposób, w jaki interfejs Co-Doing API aktualizuje aplikację, gdy uzyska nowy stan. Gdy zostanie wywołana metoda CoDoingDelegate.onCoDoingStateChanged, aplikacja od razu zastosuje nowy stan.

Poniższy przykładowy kod pokazuje, jak korzystać z interfejsu API Co-Doing:

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
    },
  });

Zastąp ACTIVITY_TITLE tytułem aktywności.

Zarządzaj bieżącym stanem

Gdy użytkownicy wykonają działanie w aplikacji, powinna ona natychmiast wywołać metodę CoDoingClient.broadcastStateUpdate.

Poniższa próbka kodu pokazuje implementację 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) });
});

Zastąp SOME_STRING bieżącym stanem aplikacji.