Co-Doing API implementieren

Mit der Co-Doing API werden beliebige Daten zwischen Besprechungsteilnehmern synchronisiert. Dabei kann es sich um alle Daten handeln, von denen Ihre App abhängt.

Sie müssen die Daten in ein Uint8Array serialisieren, damit sie übertragen werden können. Weitere Informationen finden Sie in der Referenz zur JavaScript-Standardbibliothek.

Wenn Sie sich nicht sicher sind, wie Sie Ihre Daten serialisieren, sehen Sie sich die folgenden Codebeispiele an.

In dieser Anleitung wird erläutert, wie Sie die Co-Doing API implementieren.

Jetzt starten

Damit Sie die Co-Doing API verwenden können, müssen Sie zuerst ein Meet-Add-on bereitstellen. Nachdem Sie diese Schritte ausgeführt haben, können Sie die Co-Doing API in Ihrem neuen Add-on verwenden.

Um die Co-Doing API zu verwenden, rufen Sie zuerst ein AddonSession-Objekt ab, das als Einstiegspunkt für gemeinsame Aktivitäten in Google Meet dient:

TypeScript

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

Ersetzen Sie CLOUD_PROJECT_NUMBER durch die Projektnummer von Ihrem Google Cloud-Projekt.

Co-Doing-Client erstellen

Erstellen Sie zuerst ein CoDoingClient Objekt aus Ihrer AddonSession.

CoDoingClientRufen Sie dazu die createCoDoingClient() Methode auf und geben Sie ein CoDoingDelegate Objekt an.

Über CoDoingDelegate werden Ihre App von der Co-Doing API aktualisiert, wenn ein neuer Status verfügbar ist. Wenn die MethodeonCoDoingStateChanged() aufgerufen wird, wird erwartet, dass Ihre App den neuen Status sofort anwendet.

Das folgende Codebeispiel zeigt, wie Sie die Co-Doing API verwenden:

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

Ersetzen Sie ACTIVITY_TITLE durch den Titel Ihrer Aktivität.

Aktuellen Status verwalten

Wenn Nutzer in Ihrer App Aktionen ausführen, wird erwartet, dass Ihre App sofort die broadcastStateUpdate() Methode aufruft.

Das folgende Codebeispiel zeigt eine Implementierung der Methode 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) });
});

Ersetzen Sie SOME_STRING durch den aktuellen Status der App.