Co-Doing API implementieren

Die Google Meet Live Sharing Co-Doing API wird verwendet, um beliebige Daten zwischen Videokonferenzen zu synchronisieren. 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 folgenden Codebeispiele an.

In diesem Leitfaden wird erläutert, wie die Co-Doing API implementiert wird.

CoDoingClient erstellen

Erstellen Sie zunächst ein CoDoingClient aus AddonSession Sie unter Erste Schritte erstellt haben.

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 an 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.