常见问题解答

常规与管理事宜

应用功能(微件、页面和导航)

Cloud SQL

数据

脚本

安全性与共享

样式

问题排查

常规与管理事宜

我的组织是否可以访问应用制作工具?

应用制作工具仅适用于某些 G Suite 版本。如果您不确定自己使用的究竟是哪个版本,请联系您的 G Suite 管理员。管理员可以通过管理控制台主页转到结算,并在订阅中查询 G Suite 版本。

应用制作工具的可用性
G Suite 商务版
G Suite 企业版
G Suite 教育版
G Suite 基本版
G Suite 公益版
个人 Google 帐号

我可以在何处管理应用制作工具设置?

请以 G Suite 管理员的身份登录,然后转到管理控制台中的应用制作工具设置页面

我该如何访问应用制作工具?

转至 https://appmaker.google.com/。在 Chrome、云端硬盘、Gmail 或其他 G Suite 服务界面中点击“应用”图标 时,系统不会显示应用制作工具图标。如果您拥有应用制作工具项目或他人已与您共享此类项目,则您可以通过云端硬盘打开这些项目。

在用户打开我的应用时会看到有关权限的弹出式窗口。该如何停用这类窗口?

请您的 G Suite 管理员将您的应用列入白名单。您必须分别将各应用列入白名单。

应用制作工具是否有版本控制?

不一定。您可以一次部署多个版本的应用,例如测试部署和生产部署。例如,您可以开发应用并将其发布到测试部署环境,在准备就绪后再发布到生产环境。您还可以将应用回滚到某个历史状态(修订版本)。但应用制作工具不支持分支,也就是说,您只能修改一个版本,即最新的一个版本。

如需获取可用修订版本的列表,请点击设置 修订版本。详细了解修订版本

应用功能(微件、页面和导航)

如何为下拉菜单或单选按钮组设置默认值?

  1. 在画布中,选择微件。
  2. 在属性编辑器中,点击事件
  3. 点击 onAttach 文本框,然后点击自定义操作。
  4. 将以下代码粘贴到代码编辑器中,将“My default value”替换为实际值:

    widget.value = "My default value";
        
  5. 点击 Done

Cloud SQL

应用制作工具是否随附 Cloud SQL?Cloud SQL 是否有免费版本?

您必须拥有 Google Cloud 订阅才能使用 Cloud SQL。任何免费版本的 Cloud SQL 均不支持使用应用制作工具,但您可以使用其他外部数据选项

您的 G Suite 管理员可以设置一个可供您的应用制作工具应用使用的默认 Cloud SQL 实例

为什么在设置自定义 Cloud SQL 实例之前必须设置默认的 Cloud SQL 实例?

默认 Cloud SQL 实例属于一项便利功能。只要设置好默认实例,就不必再要求每名应用制作工具开发者自行设置 Cloud SQL 实例。在开发者对某个应用进行原型设计和测试时,组织通常会使用默认实例;随后,在该应用已准备好作为正式版应用部署时,组织会让该应用改用自定义实例。

我应该使用多大规模的默认 Cloud SQL 实例?

组织通常从最小规模的实例入手,然后随着使用应用制作工具的用户和开发者数量的增加而扩大实例规模。

数据

我能否通过应用制作工具管理 Google 表格?

可以。例如,打开电子表格示例应用

我能否在应用用户创建记录时自动添加这些用户的名称或日期数据?

可以。许多记录都包括与用户相关的数据以及记录的创建时间。您可以为模型的 onBeforeCreate 事件添加服务器脚本,以便自动检索这些信息,而不必要求用户输入这些信息。

以下脚本可获取用户的电子邮件地址,并将其保存到“user”字段中。该脚本还能获取日期,并将其保存到“date”字段。

record.user = Session.getActiveUser().getEmail();
    record.date = new Date();
    

脚本

应用制作工具脚本使用什么语言?

您可以使用 JavaScript 编写服务器脚本和客户端脚本。服务器脚本使用 Apps 脚本运行,支持应用与其他 G Suite 服务的集成。

应用制作工具是否支持 JavaScript ES6?

只有客户端脚本支持 ES6,服务器脚本不提供相关支持。我们建议您在客户端脚本和服务器脚本中均使用 ES5 以保证一致性。如果在客户端脚本中使用 ES6 语法,则在处理应用时会收到警告,但在您发布应用时,脚本可以正常执行。

脚本是否需要服从任何限制?

对 Apps 脚本服务的调用受每日配额和执行时间限制,具体限制取决于您的 G Suite 版本。如果超出配额或时间限制,您的应用就会抛出异常并显示错误消息。如需了解详情,请转到 Google 服务的配额

在搜索栏中输入脚本或函数的名称。结果会显示与搜索条件相符的脚本和事件的可点击链接。

如何在服务器脚本操作失败时报告错误?

如果您通过客户端脚本运行服务器功能(使用 google.script.run),请使用 withSuccessHandlerwithFailureHandler 来处理服务器端响应。

例如,您可以创建一个应用,让用户通过点击“查看薪资”按钮来计算自己的薪资。您只希望用户及其经理获得相应用户的薪资信息。您可以编写一个服务器脚本来获取用户的薪资,并且检查当前应用用户是否可以获得薪资信息:

function calculateUserSalary(user) {
      var currentUser = Session.getActiveUser().getEmail();
      if (currentUser !== user && !isManager_(currentUser, user)) {
        throw new app.ManagedError(currentUser +
            " does not have access to salary for " + user);
      }

      // Gets the salary of the user...
      return getSalary_(user);
    }
    

在应用界面,如果服务器脚本运行成功,则按钮的 onClick 操作将返回薪资信息。如果服务器脚本抛出错误,则运行 .withFailureHandler 函数。在此示例中,如果服务器脚本返回错误,则系统会显示一条提醒,表明此用户无权获取相应的薪资信息:

google.script.run.withSuccessHandler(function(res){
      console.log("Salary is " + res);
    }).withFailureHandler(function(error) {
      alert("Error: " + error.message);
    }).calculateUserSalary(app.user.username);
    

您还可以在客户端脚本中使用成功和失败回调函数来处理客户端响应,并确保随后运行一个脚本。例如,如果您有一个脚本用于在数据源中创建记录,则可以在其中包含运行操作之后运行的成功和失败回调函数:

widget.datasource.createItem({
      success: function (record) {
        alert('Record with ID ' + record.id + ' was created in the database.');  // executes if record was created
      },
      failure: function (error) {
        console.info("No new record for you!"); // executes if record wasn't created
      }
    });
    

我能否在没有用户事件触发脚本运行的情况下主动运行脚本?

是的,您可以使用 Apps 脚本为服务器脚本设置触发器。详细了解可安装的触发器。如需查看示例,请转到示例:触发器

安全性与共享

我能否与组织外的用户共享我的应用?

不能。只有 G Suite 组织中的用户才能使用您的应用。对于某些应用,您可以使用 Google 表单在 Google 表格中收集用户输入,然后从表格中导入数据,从而绕过此限制。

如何授权某个 Google 群组使用我的应用?

在部署设置中的应用访问权限 (Application access) 下,输入群组的电子邮件地址。

添加群组的要求:

  • 该群组不能是公开的 Google 群组(即不能是使用 @googlegroups.com 地址的群组)。
  • 您的 Google 帐号必须拥有查看群组成员资格列表的权限。

样式

在哪里可以了解有关 Material Design 图标(可用于设置按钮样式的图标)的更多信息?

转到 https://material.io/icons/

问题排查

我无法将 Cloud SQL 数据模型添加到我的应用中,因为相应选项不可用。我该怎么办?

如果 Cloud SQL 模型选项不可用,则表示您的 G Suite 管理员需要为您的应用设置默认 Cloud SQL 数据库。根据您的具体应用需求,您可能希望使用自定义 Cloud SQL 数据库,而非默认数据库。

尽管已经设置好了自定义 Cloud SQL 数据,我仍然无法切换到该数据库。这是怎么回事?

您的 G Suite 管理员必须先设置好默认 Cloud SQL 数据库,然后您才能切换到自定义 Cloud SQL 数据库。

我的应用在预览时有数据,但部署好的版本中现在看不到任何数据。我的数据去哪里了?

应用制作工具部署可以使用相同的 Cloud SQL 实例,但在该实例上采用单独的数据库。在预览模式下拥有的数据在其他部署中不可用。您可以通过几种可选方法处理这种情况: