玄武屏的核心壁垒就是演示文稿里嵌入的是活的动画。GGB(GeoGebra)是其中最重要的一类。
GGB 是什么
GeoGebra 是数学 / 物理 / 工程领域最强的几何代数交互工具。玄武屏深度集成,可在演示中嵌入完整可交互的 GGB 动画。
嵌入流程
用户在编辑器输入平台作品 ID(如 BGeo24100033)
→ 前端调用 /media/ggb-embed?workId=...
→ Nuxt Server 验证购买权 + 获取 OSS Key
→ 服务端拉 .ggb 文件 → 转 base64 返回
→ 前端写入 ggbContent 字段OSS URL 全程不经过浏览器,彻底规避爬取风险。
workId仅作审计溯源。
视角保存
双击 GGB 元素进入交互模式 → 旋转 / 缩放调整视角 → 退出交互时自动调用 getBase64() 把当前状态覆写到 ggbContent → 视角永久锁定在演示里。
下次播放时,所有观众看到的都是你调好的角度,不会被 GGB 默认视角拉回去。
演示模式 vs 交互模式
| 模式 | 触发 | 行为 |
|---|---|---|
| 演示模式(默认) | 单击元素 | 触发动画 / 跳转 |
| 交互模式 | 双击元素 | 进入元素内部,可拖滑块、改参数;按 Esc 退出 |
interactable: true 的元素才能进入交互模式。设为 false 则元素纯展示。
数据上报(高级)
GGB 元素可声明哪些变量上报到课堂系统:
{
"type": "ggb",
"workId": "BGeo24100033",
"interactable": true,
"reportVars": ["v0", "m1", "result"]
}详见「43. 课后回看与学情数据」。
常见问题
- Q:GGB iframe 跨域报错? A:v1.0 起内置代理已配置,正常上传无需手动处理 CORS
- Q:能调用 GGB JavaScript API 吗? A:可以,详见 GGB 章节高级用法
- Q:单页可以嵌入几个 GGB? A:建议 ≤ 2,超过会显著增加首屏开销
注意
版权与采购:从平台作品库引用的动画是采购了使用权,跟着 .xwp 分发;自上传素材请确认有版权。
HTML 交互组件的嵌入方式见「15. HTML 交互组件 html」。
