Implementa l'API Co-Doing

L'API Co-Doing 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 ulteriori informazioni, consulta la documentazione di riferimento della libreria standard JavaScript.

Se non sai come serializzare i dati, rivedi gli esempi di codice seguire.

Questa guida spiega come implementare l'API Co-Doing.

Inizia

Per utilizzare l'API Co-Doing, devi prima creare una componente aggiuntivo di Meet. Una volta hai completato questi passaggi, puoi iniziare a usare l'API Co-Doing dal nuovo componente aggiuntivo.

Per utilizzare l'API Co-Doing, inizia recuperando un oggetto AddonSession, che funge da punto di contatto per le co-attività di Google Meet:

TypeScript

const session = await window.meet.addon.createAddonSession({
    cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});

Sostituisci CLOUD_PROJECT_NUMBER con il numero del progetto di del tuo progetto Google Cloud.

Crea un cliente per il co-doing

Per iniziare, crea un CoDoingClient dal tuo AddonSession.

Per creare un CoDoingClient, chiama il createCoDoingClient() e fornirà un CoDoingDelegate .

CoDoingDelegate è il modo in cui l'API Co-Doing aggiorna la tua app ogni volta che è disponibile un nuovo stato. Ci si aspetta che, quando il onCoDoingStateChanged() , la tua app 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 the new state to your ongoing CoDoing activity
    },
  });

Sostituisci ACTIVITY_TITLE con il titolo dell'attività.

Gestisci stato attuale

Quando gli utenti intraprendono un'azione nella tua app, si prevede che quest'ultima venga immediatamente chiama il broadcastStateUpdate() .

Il seguente esempio di codice mostra un'implementazione del modello Metodo 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.