Co-Doing API'sini uygulayın

Co-Doing API, toplantılar arasında rastgele verileri senkronize etmek için kullanılır katılımcı sayısı. Bu, uygulamanızın bağımlı olduğu herhangi bir veri olabilir.

İletilmesi için verileri Uint8Array cihazına serileştirmeniz gerekir. Daha fazla bilgi için JavaScript standart kitaplığına referans.

Verilerinizi nasıl serileştireceğinizden emin değilseniz kod örneklerini inceleyin takip ediliyor.

Bu kılavuzda, Co-Doing API'nin nasıl uygulanacağı açıklanmaktadır.

Başlayın

Co-Doing API'yi kullanmak için önce Meet eklentisi. Bir kez Bu adımları tamamladıktan sonra Co-Doing API'yi kullanmaya başlayabilirsiniz. yeni eklentinizi kullanabilirsiniz.

Co-Doing API'yi kullanmak için öncelikle bir AddonSession nesne, başlangıç noktası niteliğindeki bu slaytta:

TypeScript

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

CLOUD_PROJECT_NUMBER kısmına proje numarasını yazın Google Cloud projenize ekleyin.

Ortak çalışma istemcisi oluşturma

Başlamak için AddonSession'ınızdan bir CoDoingClient nesnesi oluşturun.

CoDoingClient oluşturmak için şunları çağırın: createCoDoingClient() yöntemini kullanarak CoDoingDelegate nesnesini tanımlayın.

CoDoingDelegate, Co-Doing API'nin nasıl kullanıldığını gösterir. yeni bir durum kullanıma sunulduğunda uygulamanızı günceller. Bu durumda, bu tür "the" onCoDoingStateChanged() yöntemi çağrılırsa uygulamanız yeni durumu hemen uygular.

Aşağıdaki kod örneğinde, Co-Doing API'nin nasıl kullanılacağı gösterilmektedir:

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
    },
  });

ACTIVITY_TITLE yerine etkinliğinizin başlığını yazın.

Mevcut durumu yönetme

Kullanıcılar uygulamanızda işlem yaptığında uygulamanızın hemen olması beklenir şunu çağırır: broadcastStateUpdate() yöntemidir.

Aşağıdaki kod örneğinde, broadcastStateUpdate() yönteminin bir uygulaması gösterilmektedir:

TypeScript

const myState: MyState = {
  someString: "SOME_STRING",
  someNumber: 0
};

document.getElementById('some-button').onClick(() => {
  myState.someNumber = myState.someNumber + 1;
  coDoingClient.broadcastStateUpdate({ bytes: toBytes(myState) });
});

SOME_STRING değerini uygulamanın mevcut durumuyla değiştirin.