Co-Doing API implementieren

Die Co-Doing API wird verwendet, um beliebige Daten zwischen Teilnehmenden. Das können beliebige Daten sein, von denen Ihre App abhängig ist.

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

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

In diesem Leitfaden wird beschrieben, wie du die Co-Doing API implementierst.

Jetzt starten

Wenn Sie die Co-Doing API verwenden möchten, müssen Sie zuerst ein Meet-Add-on bereitstellen. Sobald 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, müssen Sie zuerst eine Objekt AddonSession das als Einstiegspunkt für gemeinsame Google Meet-Aktivitäten dient:

TypeScript

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

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

Co-Doing-Client erstellen

Erstellen Sie zuerst ein CoDoingClient-Objekt aus Ihrem AddonSession.

Rufen Sie zum Erstellen eines CoDoingClient die Methode createCoDoingClient() und stellen eine CoDoingDelegate -Objekt enthält.

Mit der CoDoingDelegate wird die Co-Doing API aktualisiert Ihre App, sobald ein neuer Status verfügbar ist. Wenn die Methode onCoDoingStateChanged() aufgerufen wird, sollte der neue Status sofort in Ihrer App angewendet werden.

Das folgende Codebeispiel zeigt die Verwendung der 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
    },
  });

Ersetzen Sie ACTIVITY_TITLE durch den Titel Ihrer Aktivität.

Aktuellen Status verwalten

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

Das folgende Codebeispiel zeigt eine Implementierung des broadcastStateUpdate()-Methode:

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.