Die Co-Doing API wird verwendet, um beliebige Daten zwischen den Teilnehmern einer Videokonferenz zu synchronisieren. Das können beliebige Daten sein, 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 nicht sicher sind, wie Sie Ihre Daten serialisieren sollen, sehen Sie sich die folgenden Codebeispiele an.
In diesem Leitfaden wird beschrieben, wie Sie die Co-Doing API implementieren.
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 ein AddonSession
-Objekt abrufen, 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 Ihres Google Cloud-Projekts.
Co-Doing-Client erstellen
Erstellen Sie zuerst ein CoDoingClient
-Objekt aus Ihrem AddonSession
.
Rufen Sie zum Erstellen eines CoDoingClient
die Methode createCoDoingClient()
auf und geben Sie ein CoDoingDelegate
-Objekt an.
Über den CoDoingDelegate
wird Ihre App von der Co-Doing API aktualisiert, wenn ein neuer Status verfügbar ist. Wenn die Methode onCoDoingStateChanged()
aufgerufen wird, sollte Ihre App den neuen Status sofort anwenden.
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 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 erwartet, dass Ihre App sofort die Methode broadcastStateUpdate()
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.