Wdrażanie interfejsu Co-Doing API

Interfejs Google Meet Live Share Co-Doing API służy do synchronizowania wybranych 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 postaci Uint8Array. Więcej informacji znajdziesz w dokumentacji standardowej biblioteki JavaScript.

Jeśli nie wiesz, jak zserializować dane, zapoznaj się z poniższymi przykładami kodu.

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

Utwórz CoDoingClient

Na początek utwórz CoDoingClient z elementu AddonSession utworzonego w sekcji Pierwsze kroki.

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

CoDoingDelegate to interfejs API Co-Doing, który aktualizuje Twoją aplikację, gdy tylko znajdzie się ona w nowym stanie. Po wywołaniu metody CoDoingDelegate.onCoDoingStateChanged aplikacja natychmiast stosuje 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 newState to your ongoing CoDoing activity
    },
  });

Zastąp ACTIVITY_TITLE tytułem aktywności.

Zarządzaj bieżącym stanem

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

Oto przykładowy kod, który zawiera 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 obecnym stanem aplikacji.