Ограничения и правила
Цифры
| Что | Предел | Если больше |
|---|---|---|
Сообщение app.broadcast() | 8 КБ JSON | ошибка 413 |
Частота app.broadcast() | 20 в секунду на копию | ошибка 429 |
Текст app.notify() | 200 символов | обрезается |
Текст app.chat.send() | 500 символов плюс префикс [Название приложения] | обрезается |
| Текст значка | 24 символа; один значок от приложения на плитке | обрезается |
Значение в app.storage | 16 КБ JSON | ошибка |
Всё app.storage | 64 КБ на приложение на человека | ошибка |
Ключ в app.storage | 1–64 символа: латиница, цифры, _ . - | ошибка |
| Любой вызов моста | ответ за 15 секунд | промис отклоняется |
| Контекст-токен | 10 минут | новый — при перезапуске рамки |
| Манифест | 64 КБ, только https | не добавляется |
Рамка
Страница загружается в iframe с атрибутами:
html
sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-popups-to-escape-sandbox allow-downloads"
allow="camera; microphone" <!-- только то, что разрешено через «media» -->Что это значит для вас:
- Скрипты, формы, ваши собственные cookie и
localStorageна вашем origin работают как обычно. window.open()и ссылки сtarget="_blank"открывают обычную новую вкладку — так делайте вход в ваш сервис и оплату.- Файлы можно скачивать.
- Страница не может переходить на страницу встречи (
top.location) и открывать поверх неё модальные окна (alert,confirm,prompt). Используйте свой интерфейс иapp.notify(). - К адресу страницы добавляются два параметра:
remeet_origin(кому можно с вами говорить) иremeet_surface(panelилиstage). Сохраняйте их, если меняете адрес внутри рамки, иначе SDK не найдёт встречу.
Правила
- Просите только то, чем пользуетесь. Неиспользуемые права — повод отклонить приложение на проверке.
- Никаких секретов в странице. Всё в рамке видно человеку. Ключи и логика, которую вы защищаете, живут на вашем сервере, за контекст-токеном.
- Не доверяйте данным от других копий. Сообщения
broadcastприходят из чужих браузеров. Проверяйте форму и размер, прежде чем использовать, и никогда не вставляйте их вinnerHTMLкак есть. - Уважайте тему и размер. Панель узкая (примерно 320–400 px); сцена занимает область видео, на телефоне — весь экран. Проверяйте обе темы.
- Скажите, кто вы. Настоящее
developer.nameи работающийdeveloper.url.