L'API Co-Doing di condivisione in tempo reale di Google Meet viene utilizzata per sincronizzare i dati arbitrari tra le riunioni partecipanti. Può trattarsi di qualsiasi dato da cui dipende la tua app.
Devi serializzare i dati su un Uint8Array
per poterli trasmettere. Per
Per ulteriori informazioni, consulta la libreria standard JavaScript
riferimento.
Se non sai come serializzare i dati, rivedi gli esempi di codice riportati di seguito.
Questa guida spiega come implementare l'API Co-Doing.
Crea un CoDoingClient
Per iniziare, crea un
CoDoingClient
dal AddonSession
creato nella Guida introduttiva.
Per creare un CoDoingClient
, chiama il
AddonSession.createCoDoingClient
e fornirà un
CoDoingDelegate
.
L'CoDoingDelegate
è l'API Co-Doing
aggiorna l'applicazione ogni volta che è disponibile un nuovo stato. È previsto
che, quando
CoDoingDelegate.onCoDoingStateChanged
, la tua applicazione applica 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 intraprendono un'azione nella tua applicazione, si prevede che quest'ultima
chiama immediatamente
CoDoingClient.broadcastStateUpdate
Il seguente esempio di codice mostra un'implementazione del modello
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.