Co-Doing API digunakan untuk menyinkronkan data arbitrer antara rapat peserta. Data ini dapat berupa data apa pun yang diperlukan aplikasi Anda.
Anda harus membuat serialisasi data ke Uint8Array
agar dapat dikirimkan. Sebagai
informasi selengkapnya, lihat library standar JavaScript
.
Jika Anda tidak yakin cara melakukan serialisasi data Anda, tinjau contoh kode mengikuti.
Panduan ini menjelaskan cara menerapkan Co-Doing API.
Mulai
Untuk menggunakan Co-Doing API, Anda harus terlebih dahulu Membangun Add-on Meet. Satu kali telah menyelesaikan langkah-langkah tersebut, Anda dapat mulai menggunakan Co-Doing API dari dalam add-on baru Anda.
Untuk menggunakan Co-Doing API, mulailah dengan mendapatkan
AddonSession
, yang
berfungsi sebagai titik masuk untuk aktivitas bersama:
TypeScript
const session = await window.meet.addon.createAddonSession({
cloudProjectNumber: "CLOUD_PROJECT_NUMBER",
});
Membuat klien CoDoing
Untuk memulai, buat
CoDoingClient
dari AddonSession
Anda.
Untuk membuat CoDoingClient
, panggil metode
AddonSession.createCoDoingClient
dan menyediakan
CoDoingDelegate
.
CoDoingDelegate
adalah cara Co-Doing API
memperbarui aplikasi Anda setiap kali ada status baru yang tersedia. Diharapkan
hal tersebut, ketika
CoDoingDelegate.onCoDoingStateChanged
dipanggil, aplikasi Anda akan langsung menerapkan status baru.
Contoh kode berikut menunjukkan cara menggunakan Co-Doing API:
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
},
});
Ganti ACTIVITY_TITLE dengan judul aktivitas Anda.
Kelola status saat ini
Saat pengguna mengambil tindakan dalam aplikasi, aplikasi Anda diharapkan
segera memanggil
CoDoingClient.broadcastStateUpdate
.
Contoh kode berikut menunjukkan implementasi
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) });
});
Ganti SOME_STRING dengan status aplikasi saat ini.