版本说明

本页面列出了应用制作工具的新功能和已知问题。

改进了默认 Cloud SQL 实例设置

2019 年 5 月 31 日

现在,可以更轻松地在管理控制台中创建默认 Cloud SQL 实例并将其分配给组织单元或群组。了解详情

云端硬盘表的服务终止

2019 年 5 月 15 日

即日起,应用制作工具不再支持云端硬盘表。您仍可以将应用迁移到 Cloud SQL

云端硬盘表弃用更新

2019 年 3 月 29 日

自 2019 年 4 月 15 日起,云端硬盘表将处于只读状态。自 2019 年 5 月 15 日起,云端硬盘表将不再受支持。2019 年 5 月 15 日之后,您将无法从云端硬盘表中导出数据,也不能使用迁移工具移动数据。如果您有仍在使用云端硬盘表的应用,请立即迁移应用以避免数据丢失。

新模型类型:客户端计算模型

2019 年 3 月 4 日

当前版本包含一个新模型类型。客户端计算模型使用客户端查询脚本来同步提取数据,或使用回调函数返回异步结果。该模型可用于:

  • 快速显示应用组件(例如图表和动态菜单),而无需查询服务器
  • 使用 API 和客户端库提取数据

获取常见问题的解答

2019 年 2 月 11 日

我们发布了一篇新文章,解答了许多常见问题

在页面编辑器中根据不同的设备屏幕尺寸测试应用

2019 年 2 月 6 日

现在,您可以直接在页面编辑器中查看应用的布局和显示情况如何随着屏幕尺寸的变化而变化。调整画布大小时,应用样式的调整方式与部署应用后的调整方式相类似。如果在全局样式 CSS 中使用 CSS 断点,则 CSS 断点的效果现在会显示在画布中。您可以通过更改宽度和高度来调整画布大小,也可以使用新添加的下拉列表选择分辨率,例如小型手机处于横屏模式。如需了解详情,请参阅针对不同屏幕尺寸设置样式

对用户关闭权限审核

2018 年 11 月 27 日

我们发布了有关 G Suite 管理员如何对用户关闭权限审核的全新说明。当管理员授权应用作为 API 客户端时,系统不会提示用户允许该应用访问其 G Suite 数据。

增强的性能设置以及针对应用设计的全新指导

2018 年 11 月 14 日

当前版本让您可以更好地控制应用加载页面和微件的方式。我们增加了新的性能设置,并重命名了现有设置以更好地描述它们的工作原理。

以前的设置 新设置 说明
已创建面板 完全初始化 当用户打开应用时,应用制作工具会使用此设置加载应用和微件。
面板已附加到 DOM 部分初始化 与完全初始化类似,区别在于直到用户打开其父页面,微件才会初始化。
延迟初始化 除非用户打开父页面,否则应用制作工具不会加载页面或面板结构。当应用制作工具下载内容并构建网页时,您的应用会显示动画式进度指示器。
已调用 createChildren 方法 基于脚本的初始化 您可以编写一个脚本,以便在用户执行您指定的操作时调用 createChildren 方法。除非需要,否则应用制作工具不会加载子微件。

我们还发布了全新准则,旨在帮助您设计高性能、易于使用的应用。

在 G Suite Marketplace 中发布应用

2018 年 10 月 10 日

您现在可以使用 G Suite Marketplace 快速与您网域中的其他用户共享应用。详细了解如何做好应用发布准备,以及让 G Suite 管理员发布应用

Cloud SQL 事务 API

2018 年 9 月 6 日

在当前版本中,我们新增了一个 API,可供您在 Cloud SQL 模型中控制事务。以前,服务器脚本中的每项数据修改操作(如 app.saveRecords()app.deleteRecords())都是在专属事务中执行的。现在,您可以将一个常见事务中的多项操作分组,为该事务定义隔离级别,并为记录设置锁定模式。

如需了解详情,请参阅服务器 API 文档。我们还发布了一个简短的代码示例

处理外键的方式更改

2018 年 6 月 14 日

为了降低复杂程度并让您更轻松地处理数据库,我们从应用制作工具的某些部分移除了外键。现在,我们建议您使用 Relation API 来修改外键。

在当前版本中,您无法再执行以下操作:

  • 在新创建的表格和表单微件中显示或修改外键字段。
  • 使用外键创建数据绑定。
  • 在服务器和客户端脚本中创建或修改外键。
  • 在导出单个模型时导出外键。
  • 在导入单个模型时导入外键。

此更改不会对现有应用产生任何影响。如果应用制作工具检测到无效绑定,您可能会看到警告。但是,应用将继续按预期运行。如果应用生成警告,我们建议您借此机会更新应用,以便在未来版本完全弃用外键时应用已准备就绪。

向脚本添加自定义错误消息

以前,应用制作工具会禁止显示服务器脚本中出现的一些错误消息,因为错误可能会将敏感信息暴露给应用的最终用户。现在,您可以使用 app.ManagedError 将自定义错误消息从服务器脚本传播到客户端代码。当用户遇到应用问题时,可利用这些错误消息为其提供有用的信息。

引入 Google Cloud SQL 默认实例

2018 年 4 月 4 日

将使用云端硬盘表的应用升级到 Google Cloud SQL

我们建议您使用 Google Cloud SQL 存储和整理应用数据。Cloud SQL 是一项可靠、易用的服务,可在云端提供全托管式 SQL 数据库。应用制作工具支持两种类型的 Cloud SQL 实例:

  • 默认 - G Suite 管理员可以设置一个供组织中的各个“应用制作工具”应用共享的 Google Cloud SQL 实例。启用此选项后,每当您向应用添加 Cloud SQL 数据模型时,系统都会自动创建一个新数据库。如果应用需要一个无需设置且易于使用的数据库,请选择此选项。

  • 自定义表格 - 在管理员设置默认 Cloud SQL 实例后,您还可以设置自己的 Cloud SQL 实例。在以下情况下,请选择此选项:

    • 您的应用为大量用户提供服务,或者您的应用会存储大量数据。
    • 必须与其他应用共享数据库。
    • 您需要管理数据库或保留对 Cloud SQL 实例的控制力。

在当前版本中,新应用无法创建云端硬盘表数据模型。现有应用可以继续使用云端硬盘表,以及创建新的云端硬盘表。不过,我们建议您尽快将模型升级到 Cloud SQL。

如果您尚未准备好升级,我们会在完全弃用云端硬盘表之前为您提供充分的通知消息和指导信息。

外部数据源

虽然 Cloud SQL 是存储应用数据的首选模型,但您也可以构建不使用 Cloud SQL 的应用。根据应用的需要,您可以执行以下操作:

  • 使用外部 MySQL 数据库 - 应用可以使用 JDBC 连接到位于 Google Cloud Platform 之外的 MySQL 数据库。
  • 调用 REST 服务 - 您可以部署使用 HTML 请求和 REpresentational State Transfer (REST) API 的应用,以便从第三方服务检索数据。

我们发布了两个示例应用,向您展示如何在自己的应用中构建此功能。详细了解外部数据选项

四个新示例

此版本包含新示例:

  • 外部数据库REST,用于演示如何构建不需要 Cloud SQL 数据库的应用。
  • 网址缩短程序,用于展示如何接收和缩短用户提交的网址。
  • 通过电子邮件发送 PDF,用于展示如何构建具备以下特点的应用:接受用户提交的内容,将这些内容转换为 PDF,并通过电子邮件将其发送给用户。

时区支持

在当前版本之前,所有“应用制作工具”应用都使用太平洋时区。现在,您可以依次点击“设置”图标 App Settings,为应用设置时区。

此设置用于控制服务器使用的时区。客户端脚本将继续使用用户浏览器报告的时区。

此前创建的应用将继续使用太平洋时区,直至您设置一个新时区。新应用将默认使用世界协调时间 (UTC)。

应用制作工具添加 Google Cloud SQL 作为其默认数据库

2017 年 12 月 19 日

G Suite 管理员现在可以为整个网域设置 Google Cloud 实例。管理员启用 Google Cloud SQL 后,您无需创建数据库即可快速为应用添加新的 SQL 模型。应用制作工具的全新默认 Google Cloud SQL 数据库具有 SQL 的全部优势。

经过此次更改后,现有两种类型的 Google Cloud SQL 数据库:

  • 默认(推荐)- 网域管理员已预配置 Google Cloud SQL。在以下情况下,请选择此选项:

    • 应用需要一个无需设置且易于使用的数据库。
  • 自定义 - 在以下情况下,请选择此选项:

    • 应用为大量用户提供服务,或者存储大量数据。
    • 必须与其他应用共享数据库。
    • 您需要访问 Google Cloud Console 或使用其他管理工具。

详细了解如何在默认和自定义 Google Cloud SQL 数据库之间切换

新应用使用 Google Cloud SQL

G Suite 管理员启用 Google Cloud SQL 后,所有新模型都会使用默认 SQL 实例中的数据库进行创建。我们会继续支持使用云端硬盘表模型的现有应用,但建议您将这些应用升级到 Google Cloud SQL:

  1. 打开您的应用,然后导航至“设置”图标 Data model type
  2. 点击 Upgrade to Google Cloud SQL

2017 年 12 月 7 日

当前版本增加了以下功能:

预配置的弹出式对话框

可快速创建不同类型的模态和非模态对话框。以前,您必须使用页面和页面片段来构建自定义应用内通知。

新模型事件

现在,您可以配置客户端创建或修改记录之后、服务器保存更改之前这段时间发生的事件。我们还重命名了现有事件,以便更好地将其与新事件区分开来。此更改向后兼容您当前的应用。

详细了解事件

服务器端模型元数据

我们更新了 API,使服务器脚本能够访问模型元数据

导入和导出关系

2017 年 11 月 9 日

您现在可以导入和导出所有应用数据和关系。详细了解应用制作工具如何处理关系:

  • 导入 - 注意在从 SQL 数据库导入时,应用制作工具如何处理各个键。
  • 导出 - 查看当导出内容包含“一对多”和“多对多”关系时,应用制作工具如何将关联关系写入 Google 表格。

应用制作工具和 Google Cloud SQL 的重大变化

2017 年 10 月 9 日

本周的版本会引入影响应用制作工具和 Google Cloud SQL 使用方式的更改。

在 Google Cloud SQL 模型中改进了时区支持

以前,应用制作工具处理时区的方式取决于应用是以开发者身份运行还是以用户身份运行。在预览或部署应用的新版本后,应用制作工具会采用不同方式处理与时间相关的 SQL 类型

  • 如果应用以开发者身份运行,则系统会在 TIMESTAMP 值显示在数据库中时读取和写入该值。在早期版本中,Bug 会导致时间戳值关闭 7 到 8 小时。

  • 如果应用以用户身份运行,则系统会按太平洋时间读取和写入 DATEDATETIME 值。

经过此次更改后,无论应用是以开发者身份运行,还是以用户身份运行,时区都采用相同的处理方式。

更新基于时间的数据类型

为确保正确处理时区,您可能需要更新 Cloud SQL 模型中受影响的值。

在以下情况下,您需要更新现有的值和参数:

  • 应用以开发者身份运行,并且数据库中包含 TIMESTAMP 值。
  • 应用以用户身份运行,并且数据库中包含 DATE 或 DATETIME 值。

要进行必要的更新,请执行以下操作:

  • 字段 - 使用 SQL 控制台或其他 SQL 客户端相应地调整基于时间和日期的受影响字段值。

  • 计算模型数据源查询参数 - 您现在可以在模型的“Datasources”标签页中设置类型:

界面变化

我们从应用制作工具界面中去掉了一些颜色。新界面与其他 Google 产品中采用的设计更加一致,并且使用单一颜色有助于突出显示重要按钮和控件。此外,如果应用使用不同的配色方案,新界面还能确保让应用成为关注焦点并减少颜色冲突。

将样式应用于各个页面

您现在可以使用 CSS 自定义各个页面。页面级 CSS 设置始终会覆盖有冲突的全局样式。

公司商店模板、图片示例和其他新功能

2017 年 9 月 22 日

我们在过去几周内增加了以下新功能:

  • 企业商店模板。
  • 图片示例,展示了如何让用户从 Google 云端硬盘中选择图片并在应用中显示这些图片。
  • 现在,具有“任意对一”关系的云端硬盘表可以进行排序。
  • 对很多 Bug 进行了修复。

文档示例和客户端 API 的附加功能

2017 年 7 月 31 日

此版本向应用制作工具增加了以下功能:

  • 新的示例应用,演示了如何创建文本并将文本添加到 Google 文档中。

  • 客户端 API 的附加功能,可用于确定应用用户是否具有特定角色。

“应用制作工具”应用可嵌入

2017 年 7 月 13 日

本周的版本增加了以下新功能:

  • 您现在可以在 iFrame 中嵌入“应用制作工具”应用。要使用此功能,请在 App Settings 中启用它。

新模板和新快捷键

2017 年 6 月 28 日

本周的版本增加了以下功能:

  • 用于差旅审批应用的新模板。

  • 用于预览您在修改的应用的键盘快捷键 (F9)。

日历示例和部署网址改进

2017 年 6 月 23 日

本周的版本增加了以下功能:

  • 我们发布了一个新示例,演示了如何在用户的 Google 日历中读取和写入数据。

  • 用于访问每个部署的网址更加醒目。我们还添加了一个“复制到剪贴板”按钮,使共享更为容易。

  • 修复了 Bug。

电子表格示例

2017 年 6 月 16 日

除了 Bug 修复之外,本周的版本还包含一个示例,展示了如何使用脚本在 Google 表格中读取和写入数据。

可以更加轻松地共享部署,并且能够选择表格和单元格

2017 年 6 月 7 日

当前版本进行了以下改进:

  • 我们添加了指向每个部署的网址,以便您可以轻松地导航到相应部署或与他人共享部署。

  • 现在,脚本可以在手风琴式折叠微件和列表微件中使用 selectedRow 属性,并在网格微件中使用 selectedCell 属性。可以使用这些属性对所选项执行操作。

  • 我们修复了大约 30 个 Bug。

Google Cloud SQL 应用能够以用户身份运行;以及其他一些改进

2017 年 6 月 6 日

近几周内我们发布了多项功能和改进。

Google Cloud SQL

使用 Google Cloud SQL 模型的应用现在能够以最终用户身份运行。

应用无障碍功能
  • Announce API - 您可以让应用向需要使用屏幕阅读器的用户提供重要信息。公告可以包括活动信息或视障人士不易察觉的内容变更。您可以根据需要向应用的客户端脚本添加以下内容:

    app.accessibility.announce("Hello world!");

  • ariaLabel 属性 - 用于添加描述微件内容的文本。系统会向依赖屏幕阅读器的应用用户朗读该文本。

脚本
  • 向服务器脚本添加了 app.getRoleMembers()。它会返回属于指定角色的所有成员,而不会返回您添加到某个角色的各个群组成员。

  • google.script.run 添加了代码补全功能。

  • 可以更加轻松地在脚本编辑器中注释掉代码:

    • 单行 - 点击相应行的任意位置并按下 Ctrl + /
    • 多行 - 选择一段文本并按下 Ctrl + Alt + /

      可以使用同样的组合键移除所选文本中的注释指示符。

模板
示例应用
其他
  • 您现在可以使用主菜单来创建当前应用的副本。

  • 我们修复了许多 Bug!

提高了涉及关系的数据查询的安全性

2017 年 5 月 3 日

我们更改了应用制作工具处理数据模型中权限的方式:

  • 现在,应用制作工具会在非管理员用户查询记录时验证其权限。对于查询脚本,应用制作工具会将所有权过滤条件应用于查询,并在将结果返回给用户之前检查用户对结果的权限。
  • 非管理员用户请求具有关系的记录时,应用制作工具会检查其对记录的加载权限。如果用户无权访问该关系中的所有模型,则查询会被拒绝。
  • 您可以为模型分配 Owner or Roles 权限。使用此方法可以为创建数据的用户以及一组用户(例如 HR)提供访问权限。
  • 应用制作工具现支持对所有关系进行过滤和排序。以前,您只能过滤“一对一”和“多对一”关系。

为确保向后兼容已部署的应用,我们建议您采取以下措施:

  • 确保包含机密数据的所有模型都是安全的
  • 验证对关系中涉及的模型的加载权限,并确保非管理员用户拥有适当的访问权限。

用于控制微件的新功能

2017 年 2 月 23 日

当前版本让您可以更好地控制页面布局以及微件的显示方式:

  • 现在,可以更轻松地调整表格大小并添加、删除或移动列。现有表格不会受此更改的影响。
  • 您可以控制不可见微件对页面的影响:

    • 不存在 - 当某微件不可见时,它不会占用任何空间。这等效于 CSS 规则 display:none
    • 隐藏 - 当某微件不可见时,它会隐藏,但仍占用空间。这等效于 CSS 规则 visibility:hidden

  • 右侧边栏现在包含用于控制微件的边距和内边距的其他设置

列表字段在云端硬盘表中已弃用

2017 年 2 月 2 日

对列表字段的支持在云端硬盘表中已弃用。您可以继续在计算模型和目录模型中使用列表字段。

对于云端硬盘表,关系是列表字段的替代方法。

本次弃用的结果如下:

  • 当您打开一个在云端硬盘表中包含列表字段的应用时,应用制作工具编辑器会显示警告。
  • 您可以预览和发布在云端硬盘表中包含列表字段的应用,并且该应用和列表字段会正常工作。
  • 您无法在新应用或现有应用中添加列表字段。
  • 如果您删除了某个列表字段,可以重新添加,方法是还原为包含该列表字段的应用的修订版本。
  • 数据导入和导出都会继续支持云端硬盘表中的列表字段。

以后,应用制作工具将添加对“任意对多”关系过滤的支持,这种过滤等效于通过列表字段所实现的过滤。

将列表字段转换为关系

将列表字段转换为关系是一个手动过程,对于每个部署,该过程都有所不同。常规步骤如下:

  1. 添加一个包含列表值的新表。
  2. 将包含列表值的表中的“一对多”关系添加到此新表。
  3. 在使用列表值的每个页面上添加微件,以显示所有列表值和新添加的关系的值。
  4. 确保包含列表值的每个行也添加了关系值。
  5. 移除应用的表和页面中的列表字段。

快速删除记录

2017 年 2 月 2 日

现在,通过 datasource.deleteItem() 删除的记录会在客户端上快速删除。调用 datasource.deleteItem() 后,当前项会立即从客户端中移除,而不是在调用从服务器返回时移除。系统仍会调用回调函数,它可用于执行失败或成功时所需的任何处理操作。如果服务器发生故障,系统将恢复已删除的记录及其关联关系。

下面是一个具有可选回调函数deleteItem 方法示例:

datasource.deleteItem({
      success: function () {
        console.info("Deleted current datasource record.");
      },
      failure: function (error) {
        console.info("Failed to delete current datasource record: " + error);
      }
    });

支持 Google Cloud SQL 第二代实例和目录模型中的其他字段

2017 年 1 月 20 日

现在,您可以将应用制作工具连接到 Google Cloud SQL 第二代实例。

此外,目录模型支持以下新字段:

  • WorkPhones
  • HomePhones
  • MobilePhones
  • HomeAddresses
  • WorkAddresses
  • CustomEmail
  • PrimaryOrganizationDescription
  • PrmaryOrganizationCostCenter

列表字段 - 在单个字段中存储数据数组

2017 年 1 月 4 日

列表字段可以包含多个值,以数组形式存储在记录中。应用制作工具使用包含相应字段的记录来提取列表字段中的数据,并会在记录被删除时删除相应数据。

列表字段的数据类型有列表<字符串>、列表<数字>、列表<布尔值>、列表<日期>。

借助脚本,您可以完全控制进入列表字段和来自列表字段的数据。某些微件也支持列表字段。对于用户数据条目和导入/导出内容,存在着特殊语法。

示例

  • 借助 Interests 页面上的多选微件,用户可以选择一到七项兴趣。您可以将选项存储在列表字段中。
  • 用户可以输入多个电子邮件地址。
  • 监控过程或实验可以生成可变数量的数据。

草稿记录已弃用,替换为“创建”模式

2017 年 1 月 4 日

为了改善应用制作工具中的表单体验,我们弃用了草稿记录,并将其替换为一种更灵活的解决方案(名为“创建”的全新数据源模式)。

此更改会影响您现有的插入表单以及可能使用了草稿记录的其他位置。要转换微件,请按照以下两个选项之一操作:

选项 1:删除插入表单并拖拽出一个新表单

这是更新表单最简单的方法,建议用于包含很少自定义项的表单。

  1. 删除旧表单。
  2. 拖拽出一个新表单。

新表单的绑定和操作将使用“创建”数据源。

选项 2:手动更新表单或其他微件

如果您已自定义表单或在其他位置使用了草稿记录,请使用此方法。

我们制作了一个简短的演示视频,向您展示如何快速更新微件。

  1. 更新微件的数据源以使用“创建”模式数据源:
    1. 选择微件。
    2. 在属性编辑器中,导航到微件的数据源。
    3. 点击相应的 Edit 框。
    4. 在弹出的对话框中选择“<Datasource Name> (create)”。
  2. 更新微件的字段绑定:
    1. 选择绑定到某字段的各个微件。
    2. 在属性编辑器中,将字段的值绑定从“datasource.draft...”更改为“datasource.item...”。
  3. 更新“Clear”按钮的 onClick 操作:
    1. 选择“Clear”按钮。
    2. 在属性编辑器中,将此按钮的 onClick 操作从 widget.datasource.clearDraft(); 更改为 widget.datasource.clearChanges();

此更改对应用制作工具有何改进?

  • 此更改还支持在手动保存模式下为数据源创建插入表单。
  • 要将新表单从修改表单更改为插入表单,只需将数据源的绑定从 datasourceName 更改为 datasourceName.modes.create。(在此之前,您需要将字段绑定从“草稿”更改为“项”,反之亦然。)
  • 您可以使用页面片段创建统一的插入表单和修改表单。此处是一个示例应用,向您展示了如何完成此操作。

您可以在 Client API数据源参考中详细了解“创建”模式数据源。

应用制作工具无法通过第二代 Cloud SQL 实例进行身份验证

2016 年 12 月 15 日

应用制作工具目前无法通过第二代 Google Cloud SQL 实例进行身份验证。您现在可以创建第一代实例,然后在此问题解决后将其迁移到第二代实例

新微件、模板和高级服务

2016 年 12 月 1 日

应用制作工具现支持以下各项:

  • 云端硬盘选择器 - 一种新微件,可让用户在云端硬盘中查找文件并将其上传到您的应用中。此微件要求应用以用户身份运行

  • 用户选择器 - 一种新微件,可让用户查找您网域的其他成员。该微件需要目录模型,以提供对网域的 G Suite 目录的访问权限。

  • 文档审批模板 - 一种自定义应用,可用于创建文档审批工作流。

  • 用户查看工具模板 - 一种自定义应用,可让您使用目录模型和其他数据源查看您组织内的用户。

  • 高级 Google 服务 - 一组 API,您可以从应用中调用这些 API,以与用户数据、其他 Google 系统和外部系统进行交互。如需了解详情,请参阅应用制作工具支持的服务列表