INTEGRITY Dokumentace

Ankety

Tento návod vysvětluje, jak pomocí Cloudflare RealtimeKit vytvářet ankety ve schůzce, hlasovat v nich a pracovat s nimi.

Úvod

K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.

console.log("Polls object:", meeting.polls);

meeting.polls.items vlastnost vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.

console.log("All polls:", meeting.polls.items);

K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.

console.log("Polls object:", meeting.polls);

meeting.polls.items vlastnost vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.

console.log("All polls:", meeting.polls.items);

Funkci anket ve schůzce můžete využít pomocí meeting.polls. Tento objekt poskytuje metody pro vytváření anket, hlasování a další akce související s anketami.

Chcete-li načíst všechny ankety vytvořené během schůzky, použijte meeting.polls.items. Vrací pole, jehož každý prvek je objekt typu com.cloudflare.realtimekit.polls.Poll.

K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.

meeting.polls.items vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.

K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.

meeting.polls.items vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.

Typ ankety

Poll typ je definován následovně:

interface Poll {
	id: string;
	question: string;
	options: PollOption[];
	anonymous: boolean;
	hideVotes: boolean;
	createdBy: string;
	createdByUserId: string;
	voted: string[]; // stores participant ID
}

interface PollOption {
	text: string;
	votes: {
		id: string; // stores participant ID
		name: string;
	}[];
	count: number;
}

Poll typ je definován následovně:

interface Poll {
	id: string;
	question: string;
	options: PollOption[];
	anonymous: boolean;
	hideVotes: boolean;
	createdBy: string;
	createdByUserId: string;
	voted: string[]; // stores participant ID
}

interface PollOption {
	text: string;
	votes: {
		id: string; // stores participant ID
		name: string;
	}[];
	count: number;
}

Poll typ představuje anketu v rámci schůzky:

class Poll(
  val id: String,
  val question: String,
  val anonymous: Boolean,
  val hideVotes: Boolean,
  val createdBy: String,
  val options: List<PollOption>,
  val voted: List<String>,
)

Každá anketa obsahuje seznam PollOption, které představují dostupné možnosti dané ankety.

Každý PollOption obsahuje seznam PollVote kde každý hlas obsahuje hlasujícího id a name.

class PollOption(
  val text: String,
  val votes: List<PollVote>,
  val count: Int
)
class PollVote(
  val id: String,
  val name: String
)

Poll typ je definován následovně:

class Poll {
  let id: String
  let question: String
  let anonymous: Bool
  let hideVotes: Bool
  let createdBy: String
  let options: [PollOption]
  let voted: [String]
}

Typ Poll je hlavní třída pro jakoukoli anketu v RealtimeKit. Obsahuje také seznam PollOption což jsou možnosti pro danou anketu. A každý PollOption obsahuje seznam hlasů. Hlasy jsou objekty třídy PollVote který interně obsahuje id a název hlasu.

class PollOption {
  let text: String
  let votes: [PollVote]
  let count: Int
}

class PollVote {
  let id: String
  let name: String
}

Poll typ je definován následovně:

interface Poll {
	id: string;
	question: string;
	options: PollOption[];
	anonymous: boolean;
	hideVotes: boolean;
	createdBy: string;
	createdByUserId: string;
	voted: string[]; // stores participant ID
}

interface PollOption {
	text: string;
	votes: {
		id: string; // stores participant ID
		name: string;
	}[];
	count: number;
}

Vytvoření ankety

Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:

Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní:

await meeting.polls.create(
	"Are you an early bird or a night owl?",
	["Early bird", "Night owl"],
	true,
);

Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:

Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní:

await meeting.polls.create(
	"Are you an early bird or a night owl?",
	["Early bird", "Night owl"],
	true,
);

Chcete-li vytvořit novou anketu, použijte create metoda dostupná v meeting.polls objekt. meeting.polls.create() funkce vyžaduje následující parametry:

Parametr Typ Povinné Popis
otázka String ano Otázka, o které se hlasuje.
options List<String> ano Možnosti ankety.
anonymní Boolean ano Pokud je hodnota true, jsou hlasy v anketě anonymní.
hideVotes Boolean ano Pokud je hodnota true, jsou hlasy v anketě skryté.

Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.

val pollsCreateError: PollsError? = meeting.polls.create(
  question = "Are you an early bird or a night owl?",
  options = listOf("Early bird", "Night owl"),
  anonymous = true,
  hideVotes = false
)

Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.createPoll() metoda přijímá následující parametry:

Parametr Typ Výchozí hodnota Povinné Popis
otázka string - ano Otázka, o které se hlasuje.
options string[] - ano Možnosti ankety.
anonymní boolean - ne Pokud je hodnota true, jsou hlasy v anketě anonymní.
hideVotes boolean - ne Pokud je hodnota true, jsou hlasy v anketě skryté.

Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.

let pollsCreateError: PollsError? = meeting.polls.createPoll(
    question: "Are you an early bird or a night owl?",
    options: ["Early bird", "Night owl"],
    anonymous: true,
    hideVotes: false
)

Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:

Parametr Typ Výchozí hodnota Povinné Popis
otázka string - ano Otázka, o které se hlasuje.
options string[] - ano Možnosti ankety.
anonymní boolean false ne Pokud je hodnota true, jsou hlasy v anketě anonymní.
hideVotes boolean false ne Pokud je hodnota true, jsou hlasy v anketě skryté.

Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.

await meeting.poll.create(
	"Are you an early bird or a night owl?",
	["Early bird", "Night owl"],
	true,
);

Hlasování v anketě

meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:

Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce:

const poll = meeting.polls.items[0];
await meeting.polls.vote(poll.id, 0);

meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:

Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce:

const poll = meeting.polls.items[0];
await meeting.polls.vote(poll.id, 0);

Chcete-li zaznamenat hlas v anketě, použijte meeting.polls.vote() metodu. Tato metoda vyžaduje následující parametry:

Parametr Typ Výchozí hodnota Povinné Popis
pollMessage Poll - ano Zpráva ankety, pro kterou se hlasuje.
pollOption PollOption - ano Možnost, pro kterou se hlasuje.

Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.

val poll: Poll = meeting.polls.items.first()
val selectedPollOption: PollOption = poll.options.first()

val pollsError: PollsError? = meeting.polls.vote(poll.id, selectedPollOption)

meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:

Parametr Typ Výchozí hodnota Povinné Popis
pollMessage Poll - ano Zpráva ankety, pro kterou se hlasuje.
pollOption PollOption - ano Možnost, pro kterou se hlasuje.

Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.

let poll: Poll = meeting.polls.items[0]
let selectedPollOption: PollOption = poll.options[0]

meeting.poll.vote(poll, selectedPollOption)

meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:

Parametr Typ Výchozí hodnota Povinné Popis
id string - ano ID ankety, ve které se má hlasovat.
index number - ano Index možnosti.

Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.

const poll = meeting.polls.items[0];
await meeting.poll.vote(poll.id, 0);

Další funkce ankety

Zobrazení výsledků ankety

K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const votes = poll.voted;

votes je pole ID účastníků (meeting.participant.id).

K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const options = poll.options;

options vrací pole objektů, kde každý objekt je typu PollOption.

K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const votes = poll.voted;

votes je pole ID účastníků (meeting.participant.id).

K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const options = poll.options;

options vrací pole objektů, kde každý objekt je typu PollOption.

K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:

val poll = meeting.polls.items[0]
val votes = poll.voted

votes je pole ID účastníků (meeting.participant.id).

K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:

val poll = meeting.polls.items[0]
val options = poll.options

options vrací pole objektů, kde každý objekt je typu PollOption.

K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:

let poll = meeting.polls.items[0]
let votes = poll.voted

votes je pole ID účastníků (meeting.participant.id).

K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:

let poll = meeting.polls.items[0]
let options = poll.options

options vrací pole objektů, kde každý objekt je typu PollOption.

K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const votes = poll.voted;

votes je pole ID účastníků (meeting.participant.id).

K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:

const poll = meeting.polls.items[0];
const options = poll.options;

options vrací pole objektů, kde každý objekt je typu PollOption.

Upozornění na vytvoření nebo aktualizaci ankety

Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:

meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
	console.log("Polls updated:", polls);
	console.log("Is new poll:", newPoll);
});

Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:

meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
	console.log("Polls updated:", polls);
	console.log("Is new poll:", newPoll);
});

Alternativně můžete pro naslouchání aktualizacím anket použít React hooks:

import { useRealtimeKitSelector } from "@cloudflare/realtimekit-react";

// useRealtimeKitSelector hook only works when `RealtimeKitProvider` is used.
const polls = useRealtimeKitSelector((m) => m.polls.items);

Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:

meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
	console.log(polls, newPoll);
});

Chcete-li během schůzky dostávat aktualizace o nových anketách nebo jejich změnách, implementujte RtkPollsEventListener rozhraní. Zaregistrujte svého posluchače pomocí meeting.addPollsEventListener(rtkPollsEventListener).

onNewPoll() metoda se volá vždy, když je ve schůzce vytvořena nová anketa.

onPollUpdate() metoda se volá, když je aktualizována konkrétní anketa, například když účastníci hlasují nebo se změní podrobnosti ankety. onPollUpdates() metoda se volá při aktualizacích seznamu anket, včetně vytvoření nových anket nebo hromadné aktualizace více anket najednou. Pomocí těchto callbacků udržíte rozhraní anket synchronizované s nejnovějšími daty.

meeting.addPollsEventListener(object : RtkPollsEventListener {
    override fun onNewPoll(poll: Poll) {
    }

    override fun onPollUpdate(poll: Poll) {
    }

    override fun onPollUpdates(pollItems: List<Poll>) {
    }
  }
)

Abyste mohli přijímat nové zprávy o anketách, musíte implementovat metodu onPollUpdates() metodu z callbacku RtkPollsEventListener. K odběru těchto událostí se můžete přihlásit voláním meeting.addPollsEventListener(meetingViewModel)

extension MeetingViewModel: RtkPollsEventListener {
  func onNewPoll(poll: Poll) {
    // code to handle new poll
  }

  func onPollUpdates(pollItems: [Poll]) {
    // code to handle polls and their vote updates.
  }

  func onPollUpdate(poll: Poll) {}
}