Поверхность малого компонента
Вашему компоненту React нужно всего лишь отобразить iframe, задать его размер и, при необходимости, управлять обработчиками событий.

Игровой виджет React
Командам разработчиков React не нужно создавать игру с нуля, чтобы добавить интерактивный виджет. Отобразите Games I Know iframe внутри компонента React, передайте URL фрейма и отслеживайте события postMessage, когда родительскому приложению потребуется состояние игры.
компонент iframe
Обработчик сообщений React
Адаптивная оболочка
Подписанная поддержка завершения
Краткий ответ
В React создайте небольшой компонент iframe для /embed/{gameSlug}/frame/, передайте tenantId в качестве параметра URL и добавьте обработчик событий для Games I Know.
Демонстрация показывает iframe и события родительской страницы, на которые может подписаться ваше приложение React.
Разработчики React добавляют игру embed
iframe позволяет отделить среду выполнения игры от вашего приложения, сохраняя при этом возможность интеграции на основе событий.
Вашему компоненту React нужно всего лишь отобразить iframe, задать его размер и, при необходимости, управлять обработчиками событий.
Игра не увеличивает размер пакета вашего React-приложения за счет логики игрового поля, ресурсов или кода реального времени.
Родительское приложение может реагировать на события, не будучи напрямую связанным с внутренними механизмами игры.
Настройка процесса
Оберните iframe в компонент, при необходимости мемоизируйте URL фрейма и очистите обработчики сообщений при размонтировании.
Шаг 1
Отобразить iframe с шириной 100%, стабильной высотой, параметром allow="fullscreen", и URL-адресом фрейма Games I Know.
Шаг 2
Создайте файл src, указав свой tenantId и, при необходимости, campaignId, чтобы данные на вашей панели мониторинга оставались упорядоченными.
Шаг 3
Прикрепите window.addEventListener("message", handler) и отфильтруйте сообщения, где data.source - gamesiknow.
Шаг 4
Если приложение React разблокирует награды, вызовите бэкэнд и проверьте подписанные результаты, прежде чем что-либо предоставлять.
Выполнение
Не делайте компонент iframe скучным. Большинство ошибок возникает из-за нестабильного размера, дублирования обработчиков событий или чрезмерного доверия к сообщениям браузера.
Не перемонтируйте iframe при каждом рендеринге родительского элемента. Поддерживайте стабильность src, если только не меняются настройки игры или арендатора.
Возвращает функцию очистки из useEffect, чтобы в режиме разработки React не оставалось дублирующихся обработчиков событий.
React может быстро отобразить результат, но решения о присуждении призов или начислении баллов должны приниматься на вашем сервере.
Доступные игры
Tic Tac Toe
Embed for same-screen play on your site, or send players to Games I Know to challenge a friend remotely with a room link.
Embed настройка
Four in a Row
Embed for local two-player drops on one screen, or link friends to play Four in a Row online from anywhere.
Embed настройка
Bingo
Same-screen Bingo in your embed, or host a remote room so players can join from their own devices.
Embed настройка
I Know
Quick trivia in your embed on one screen, or run a live room so friends can answer from anywhere.
Embed настройка
Sudoku
Embed a solo Sudoku puzzle for calm brain breaks on blogs, school pages, and waiting-room screens.
Embed настройка
Word Search
Embed a solo Word Search puzzle for quick brain breaks on blogs, school pages, and waiting-room screens.
Embed настройка
Часто задаваемые вопросы
Используйте /embed/{gameSlug}/frame/ в качестве src для iframe. Этот маршрут представляет собой легковесный игровой фрейм, созданный для веб-страниц embed и событий postMessage. Маршрут /embed/{gameSlug}/ - это страница для публичного предварительного просмотра и SEO-оптимизации, а не маршрут, который следует размещать внутри iframe.
Нет. Посетители могут играть в браузере iframe на телефоне, планшете, ноутбуке или настольном компьютере. Партнерский аккаунт нужен только владельцу сайта, который устанавливает embed.
Да. Games I Know и embed разработаны для зарегистрированных веб-сайтов и настроек арендаторов с ограничениями по домену, поэтому скопированный код iframe нельзя свободно использовать на неавторизованных сайтах.
Игры Tic Tac Toe, Four in a Row, Bingo и I Know доступны в качестве браузерных игр, поддерживающих embed. В документации к embed используется одна и та же модель событий для всех поддерживаемых игр.
Нет. Games I Know и embed основаны на iframe. Это обеспечивает независимость от фреймворка настройки, при этом компонент React работает корректно.
Создайте партнерский аккаунт, зарегистрируйте свой домен и сгенерируйте для своего веб-сайта iframe с ограничением доступа к домену.