Wdrażanie interfejsu Co-Doing API

Interfejs 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 Twojej aplikacji.

Aby dane mogły zostać przesłane, musisz je zserializować do postaci Uint8Array. Więcej informacji znajdziesz w dokumentacji standardowej biblioteki JavaScript reference.

Jeśli nie wiesz, jak zserializować dane, zapoznaj się z przykładowym kodem poniżej.

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

Rozpocznij

Aby korzystać z interfejsu Co-Doing API, musisz najpierw wdrożyć dodatek do Meet. Gdy wykonasz te czynności, możesz zacząć korzystać z interfejsu Co-Doing API w nowym dodatku.

Aby korzystać z interfejsu Co-Doing API, zacznij od pobrania obiektu AddonSession, który służy jako punkt wejścia do wspólnych czynności w Google Meet:

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

Zastąp CLOUD_PROJECT_NUMBER numerem projektu Google Cloud.

Tworzenie klienta Co-Doing

Na początek utwórz CoDoingClient obiekt na podstawie AddonSession.

Aby utworzyć CoDoingClient, wywołaj createCoDoingClient() metodę i podaj CoDoingDelegate obiekt.

Dzięki CoDoingDelegate interfejs Co-Doing API aktualizuje Twoją aplikację, gdy tylko dostępny jest nowy stan. Oczekuje się, że gdy zostanie wywołana onCoDoingStateChanged() metoda, Twoja aplikacja natychmiast zastosuje nowy stan.

Poniższy przykładowy kod pokazuje, jak korzystać z interfejsu 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 the new state to your ongoing CoDoing activity
    },
  });

Zastąp ACTIVITY_TITLE tytułem aktywności.

Zarządzanie bieżącym stanem

Gdy użytkownicy wykonują działania w Twojej aplikacji, oczekuje się, że aplikacja natychmiast wywoła broadcastStateUpdate() metodę.

Poniższy przykładowy kod pokazuje implementację metody 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.