Implementa l'API Co-Doing

L'API Co-Doing di condivisione in tempo reale di Google Meet viene utilizzata per sincronizzare i dati arbitrari tra una riunione 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 , l'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.