GeoGebra 应用嵌入

原文来自 GeoGebra Apps Embedding :: GeoGebra Manual

此页面已翻译为简体中文, 并将 GeoGebra 的官方 CDN 换成了此项目的

快速开始

要将 GeoGebra 应用嵌入到您的页面中,您需要添加以下三个部分:

  1. 确保在 <head> 部分中包含以下内容,以确保缩放正常工作(例如在移动浏览器上)并且 Unicode 正常工作:

    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta charset="utf-8"/>
  2. 需要使用以下标签包含 JavaScript 库 deployggb.js

    <script src="https://ggb.imwangzhiyu.xyz/geogebra/deployggb.js"></script>
  3. 在您的页面上创建一个 GeoGebra 应用的元素:

    <div id="ggb-element"></div>
  4. 配置并插入应用:

    <script>
        var params = {"appName": "graphing", "width": 800, "height": 600, "showToolBar": true, "showAlgebraInput": true, "showMenuBar": true };
        var applet = new GGBApplet(params, true);
        window.addEventListener("load", function() {
            applet.inject('ggb-element');
        });
    </script>

只需将 appName 参数从 graphing 更改为 geometry3d 即可获取我们的其他应用。要加载活动,您可以使用例如 "material_id":"RHYH3UQ8""filename":"myFile.ggb",并且可以通过使用各种 GeoGebra 应用参数进一步自定义我们的应用。

教程

请参见 此处 (英文) 了解更长的教程,该教程解释了不同的嵌入选项。

离线和自托管解决方案

我们建议您使用我们全球和超快速服务器网络 www.geogebra.org 上的 GeoGebra 应用,如上所示,但如果您更喜欢自己托管和更新 GeoGebra 应用,您可以下载我们的 GeoGebra 数学应用捆绑包。嵌入代码几乎与上述相同,有两个区别:包含 deployggb.js 的标签需要更改为

    <script src="GeoGebra/deployggb.js"></script>

并且在 inject() 调用之前需要包含以下行: ``javascript applet.setHTML5Codebase('GeoGebra/HTML5/5.0/web3d/');

或者,如果您只需要固定到特定版本,则仍然可以使用 CDN,如下所示(不要更改 `5.0`,只更改 `498`):
```javascript
    applet.setHTML5Codebase("https://ggb.imwangzhiyu.xyz/geogebra/5.0.498.0/web3d");

由于技术原因,在版本 804 之后,您需要使用 5.2 而不是 5.0,例如:

    applet.setHTML5Codebase("https://ggb.imwangzhiyu.xyz/geogebra/5.2.804.0/web3d");

调整嵌入应用的外观

此功能目前仅适用于 GeoGebra Notes。要更改 UI 元素的颜色,您可以设置一些 CSS 变量:

    <style>
    body {
      --ggb-primary-color: #ee0290; /* 用于大多数 UI 元素,包括工具栏标题和按钮 */
      --ggb-primary-variant-color: #880061; /* 用于悬停时的浮动按钮 */
      --ggb-dark-color: #880061; /* 用于对话框中的高亮文本 */
      --ggb-light-color: #f186c0; /* 用于进度条 */
    }
    </style>

使用服务工作者加快加载时间

您可以通过使用服务工作者加快 GeoGebra 库的加载时间。要使用服务工作者,您应该使用 setHTML5Codebase() 设置 GeoGebra 的特定版本。

要安装服务工作者,首先必须在您的域下包含 sworker-locked.js 文件(例如 www.example.com/path/sworker-locked.js)。服务工作者文件可以在 GeoGebra 数学应用捆绑包的 GeoGebra/HTML5/5.0/web3d/ 文件夹中找到。

接下来,在加载 GeoGebra 的页面上包含以下代码段。请更改服务工作者的路径。您还可以设置 appletLocation 变量以仅在特定文件夹中启用工作者(或将其保留为 '/' 以在您的域的所有页面上使用):

    var serviceWorkerPath = '/sworker-locked.js'
    var appletLocation = '/'
    function isServiceWorkerSupported() {
        return 'serviceWorker' in navigator && location.protocol === "https:";
    }

    function installServiceWorker() {
        if (navigator.serviceWorker.controller) {
            console.log("Service worker is already controlling the page.");
        } else {
            navigator.serviceWorker.register(serviceWorkerPath, {
                scope: appletLocation
            });
        }
    }

    if (isServiceWorkerSupported()) {
        window.addEventListener('load', function() {
            installServiceWorker()
        });
    } else {
        console.log("Service workers are not supported.");
    }

安装后,当用户打开启用了服务工作者的页面时,应用脚本将由服务工作者下载并缓存。这样,下次同一用户访问该页面时,脚本将从缓存中加载,而不是再次从服务器下载。