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 zu einer Uint8Array serialisieren, damit sie übertragen werden können. Für Weitere Informationen finden 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 erläutert, wie die Co-Doing API implementiert wird.

Erste Schritte

Um die Co-Doing API zu verwenden, müssen Sie zunächst ein Meet-Add-on. Einmal Wenn Sie diese Schritte ausgeführt haben, können Sie die Co-Doing API aus dem neuen Add-on aus.

Um die Co-Doing API zu verwenden, müssen Sie zuerst eine AddonSession, die dient als Einstiegspunkt für gemeinsame Aktivitäten:

TypeScript

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

CoDoing-Client erstellen

Erstellen Sie zunächst ein CoDoingClient von deinem AddonSession.

Rufen Sie zum Erstellen eines CoDoingClient die Methode AddonSession.createCoDoingClient und stellen eine CoDoingDelegate

Mit der CoDoingDelegate wird die Co-Doing API aktualisiert Ihre Anwendung, sobald ein neuer Status verfügbar ist. Erwartungsgemäß dass, wenn der CoDoingDelegate.onCoDoingStateChanged aufgerufen wird, wendet Ihre Anwendung sofort den neuen Status an.

Das folgende Codebeispiel zeigt, wie die Co-Doing API verwendet wird:

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

Ersetzen Sie ACTIVITY_TITLE durch den Titel Ihrer Aktivität.

Aktuellen Status verwalten

Wenn Nutzer in Ihrer App Aktionen durchführen, wird erwartet, dass Ihre App ruft sofort die Funktion CoDoingClient.broadcastStateUpdate .

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

Ersetzen Sie SOME_STRING durch den aktuellen Status der App.