Implementa l'API Co-Doing

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.