Games I Know logoGames I Know
Games I Know 浏览器游戏以 Astro 游戏小部件的形式显示

Astro 游戏小部件

适用于静态和混合网站的 Astro 游戏组件

Astro 网站可以快速生成易于索引的页面,同时还能提供可玩的游戏体验。将标题、正文和模式信息保留在 Astro 页面中,在页面主体中渲染 Games I Know 和 iframe,仅在需要浏览器事件时才使用小型客户端脚本或 island。

静态友好型页面

极简客户端 JS

可索引副本

iframe 框架路由

简答

使用框架路由,然后添加页面上下文。

在 Astro 中,创建一个包含元数据和常见问题解答内容的可索引页面,然后在页面中添加 `embed /embed/{gameSlug}/frame/`。当需要 GAME_STARTED 或完成事件时,添加一个用于 postMessage 的客户端脚本。

试试这款对 Astro 友好的游戏小部件

实时演示模拟了您可以在 Astro 内容页面上放置的 iframe 和事件日志模式。

Astro 开发人员正在添加一个 iframe 游戏

为什么 Astro 能与 iframe 游戏组件完美兼容

Astro 擅长处理内容丰富的页面。游戏运行在 iframe 中,因此无需将游戏逻辑打包到主程序包中。

SEO内容仍由服务器端渲染

标题、指南、常见问题解答和架构可以在游戏加载时以 HTML 格式在框架中渲染。

小型客户端

只有事件监听器或全屏助手才需要客户端 JavaScript。

到处都是相同的 embed

在 Astro、Next.js、WordPress 和自定义站点中使用相同的框架 URL 模式。

设置流程

如何在Astro中添加游戏小部件

创建带有 frontmatter 元数据的路由,将 iframe 放在模板中,并将浏览器消息传递隔离到客户端脚本中。

  1. 步骤 1

    创建 Astro 页面

    在游戏放置位置周围添加标题、描述、规范网址和有用的文字说明。

  2. 步骤 2

    渲染 iframe

    在页面主体或小型局部组件中使用带有租户 ID 的 Games I Know 框架 URL。

  3. 步骤 3

    如有需要,添加客户端消息功能

    使用客户端:加载脚本或岛屿来监听来自iframe的postMessage事件。

  4. 步骤 4

    服务器端验证签名结果

    使用 API 路由或后端端点来验证完成情况,然后再授予奖励。

执行

Astro实施说明

将 Astro 页面视为 SEO 表面,将 iframe 视为可玩应用程序边界。

不要 iframe 登录页面

在 iframe 内使用 /embed/{gameSlug}/frame/。将 /embed/{gameSlug}/ 保留为正常的可抓取链接。

预留 iframe 高度

将高度固定设置为接近 640px,以减少游戏帧加载时的布局偏移。

添加常见问题解答架构

Astro 页面上的 FAQ 和 HowTo 架构有助于搜索引擎和 AI 系统理解集成。

常问问题

关于Astro 游戏小部件的常见问题

/embed/{gameSlug}/ 和 /embed/{gameSlug}/frame/ 有什么区别?

使用 /embed/{gameSlug}/frame/ 作为 iframe 的 src。该路由是为网站 embed 和 postMessage 事件构建的轻量级游戏框架。/embed/{gameSlug}/ 路由是面向用户的公开预览和 SEO 页面,不应放置在 iframe 内。

访客需要下载应用程序或创建帐户吗?

不。访客可以在手机、平板电脑、笔记本电脑或台式机上的浏览器iframe内进行游戏。只有安装embed的网站所有者才需要合作伙伴帐户。

我可以将 embed 限制在我自己域内吗?

是的。Games I Know 和 embed 是围绕注册网站和域名受限的租户设置设计的,因此复制的 iframe 代码不能在未经授权的网站上随意重复使用。

哪些Games I Know标题目前是embed可执行的?

Tic Tac Toe、Four in a Row、Bingo 和 I Know 可作为 embed 浏览器游戏使用。embed 文档在所有受支持的游戏中使用相同的事件模型。

我可以将 Games I Know 与 Astro 静态输出一起使用吗?

是的。页面内容可以完全是静态 HTML。iframe 在运行时从 Games I Know 加载访客浏览器中的游戏。

准备添加一款浏览器游戏吗?

创建合作伙伴帐户,注册您的域名,并为您的网站生成一个受域名限制的 iframe。