Wdrażanie interfejsu Co-Doing API

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

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

Jeśli nie masz pewności, jak zserializować dane, przejrzyj przykładowy kod następujących po sobie.

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

Rozpocznij

Aby używać interfejsu API Co-Doing, musisz najpierw utworzyć Dodatek do Meet. Po wykonaniu tych czynności możesz zacząć korzystać z interfejsu Co-Doing API z poziomu nowego dodatku.

Aby używać interfejsu API Co-Doing, zacznij od pobrania AddonSession obiekt, który jest punktem wyjścia do wspólnych działań w Google Meet:

TypeScript

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

Zastąp CLOUD_PROJECT_NUMBER numerem projektu Twojemu projektowi Google Cloud.

Utwórz klienta korzystającego ze wspólnego działania

Na początek utwórz CoDoingClient obiekt z AddonSession.

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

W interfejsie API Co-Doing działa CoDoingDelegate aktualizuje aplikację, gdy uzyska nowy stan. Oczekuje się, że gdy wywołana zostanie metoda onCoDoingStateChanged() , aplikacja natychmiast 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 the new state to your ongoing CoDoing activity
    },
  });

Zastąp ACTIVITY_TITLE tytułem swojej aktywności.

Zarządzaj bieżącym stanem

Gdy użytkownicy podejmą działanie w aplikacji, powinna ona natychmiast wywołuje broadcastStateUpdate() .

Poniższa próbka kodu pokazuje implementację funkcji Metoda 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.