Skip to content

Права ​

Приложение без прав может только показывать своё окно: поздороваться, показать уведомление, открыть сцену для этого человека. Всё, что касается встречи, — это права. Вы перечисляете их в манифесте; перед установкой человек видит их простыми словами и нажимает Разрешить и добавить.

Список ​

ПравоЧто видит человекЧто открывает
participants.readВидеть, кто во встрече и кто говоритcontext.participants, app.participants(), события participant.joined, participant.left, speaking
app.broadcastОбмениваться данными со своими копиями у других участниковapp.broadcast(), событие broadcast
chat.readЧитать чат встречисобытие chat.message
chat.sendПисать в чат от вашего имени с пометкой приложенияapp.chat.send() — сообщение уходит от человека и начинается с [Название приложения]
captions.readЧитать живые субтитрысобытие captions, пока во встрече идут живые субтитры
badges.writeПоказывать значки на плитках участниковapp.badges.set(), app.badges.clear()
stage.startОткрывать общую сцену для всех (только когда вы ведущий)app.stage.open({ everyone: true })
storageХранить для вас до 64 КБ своих данныхapp.storage.get/set/delete

Доступно всегда, без прав: ReMeet.ready(), app.notify(), app.stage.open() для себя, app.stage.close(), событие theme.

Камера и микрофон ​

Если камера или микрофон нужны самой странице (например, диктофон или игра на позы), добавьте media:

json
"media": ["camera", "microphone"]

Человек увидит «Использовать камеру внутри приложения (браузер спросит ещё раз)». Когда он разрешит, рамка получит доступ, а браузер задаст свой вопрос при первом использовании. Без media вызов getUserMedia() внутри рамки не сработает. Аудио и видео самой встречи приложение не получает никогда.

Проверка во время работы ​

js
const app = await ReMeet.ready();

if (app.can('chat.send')) {
  showShareButton();
}

app.permissions; // ['participants.read', 'app.broadcast', …] — что разрешил этот человек

Вызов без права завершается ошибкой с кодом 403:

js
try {
  await app.chat.send('Результаты готовы');
} catch (error) {
  if (error.code === 403) app.notify('Разрешите приложению писать в чат, чтобы делиться результатами');
}

События, для которых нужно право, без него просто не приходят.

Хороший тон ​

  • Просите минимум. Каждая лишняя строка в окне установки стоит установок.
  • Не делайте главную функцию зависимой от права, без которого можно обойтись: проверьте app.can() и предложите путь попроще.
  • Если обновление добавляет право, у тех, кто поставил приложение раньше, его нет, пока они не добавят приложение снова, — см. обновление приложения.

ReMeet Apps SDK v0 · бета. Файл SDK v0.js — под лицензией MIT.