L'API Co-Doing per la condivisione in tempo reale di Google Meet viene utilizzata per sincronizzare dati arbitrari tra i partecipanti alla riunione. Può trattarsi di qualsiasi dato da cui dipende la tua app.
Devi serializzare i dati fino a un Uint8Array
per consentirne la trasmissione. Per ulteriori informazioni, consulta la documentazione di riferimento sulla libreria standard JavaScript.
Se hai dubbi su come serializzare i tuoi dati, esamina gli esempi di codice riportati di seguito.
Questa guida spiega come implementare l'API Co-Doing.
Crea un CoDoingClient
Per iniziare, crea una CoDoingClient
dalla AddonSession
che hai creato in Inizia.
Per creare un CoDoingClient
, chiama il metodo
AddonSession.createCoDoingClient
e fornisci un
CoDoingDelegate
.
L'elemento CoDoingDelegate
è la modalità con cui l'API Co-Doing
aggiorna l'applicazione ogni volta che è disponibile un nuovo stato. È previsto che, quando viene chiamato il metodo CoDoingDelegate.onCoDoingStateChanged
, l'applicazione applichi immediatamente il nuovo stato.
Il seguente esempio di codice mostra come utilizzare l'API Co-Doing:
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
},
});
Sostituisci ACTIVITY_TITLE con il titolo dell'attività.
Gestisci stato attuale
Quando gli utenti eseguono azioni nella tua applicazione, ci si aspetta che l'applicazione chiami immediatamente CoDoingClient.broadcastStateUpdate
.
Il seguente esempio di codice mostra un'implementazione di 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) });
});
Sostituisci SOME_STRING con lo stato attuale dell'app.