google-apps-script - Google Sheets - 使应用程序脚本在手机应用程序版本上运行
问题描述
我创建了一个 Google 表格电子表格和一些脚本来帮助我跟踪健身房成员的出勤情况。
我的项目关联了以下脚本: - 一个触发器,它根据我所做的一些检查发送定期事件,并更新一些单元格。这很好用,我安排它每天运行,即使我的电脑没有打开,它似乎也能正常工作:D - 我还添加了一个 onEdit 功能,该功能应该提醒用户他/她已经修改了一个单元格并让他知道他可以撤消以恢复更改。这是功能:
function onEdit(e) {
var ui = SpreadsheetApp.getUi();
var cell = e.range;
var actual_cell = e.source.getActiveRange().getA1Notation();
var row = cell.getRow();
var column = cell.getColumn();
var old_content = e.oldValue;
ui.alert('Modificare celula' + ' ' + actual_cell + '.' + ' UNDO to rever the changes')
}
但是,这不适用于移动版本:Android 表格。有什么方法可以让我的应用程序在移动版本上也能完全正常运行?我想要那个警告消息告诉用户一个单元格在移动版本上也被修改了。我怎么能那样做?
还有另一个关于发送定期电子邮件的触发器的问题。我使用了运行某些功能的基于时间的每日触发器。我是否必须始终在我的 PC(或任何其他设备)上登录我的帐户才能定期运行此脚本?还是它在云端,即使我没有登录任何设备,它也会运行?
解决方案
为了能够从移动应用程序(Android 或 iOS)触发绑定到电子表格的脚本,您必须将脚本部署为 API 可执行文件(发布 -> 部署为脚本菜单栏中的 API 可执行文件)[1]。
正如一位 Google 员工在此评论 [2] 中所说,自去年以来,您无法在移动版本中显示 Ui 类 [3] 中的任何元素。
关于您的另一个问题:您的计算机是否打开并不重要,脚本/触发器将以任何方式运行。
[1] https://developers.google.com/apps-script/api/quickstart/target-script
[2] https://b.corp.google.com/issues/36763692#comment6
[3] https://developers.google.com/apps-script/reference/base/ui
推荐阅读
- android - Mapbox(Android)中两点之间的路由
- jquery - 如何使用 MVC Core 获得局部视图的运行总计?
- python - Django中的作业调度
- python - 当 DynamoDB 中不存在项目时,如何使用 Python (boto3) 强制 delete_item 返回错误?
- reactjs - React - 如何显示/隐藏组件,以便即使未渲染组件也能保持状态
- c++ - 对于这个 Codeforces 问题,有没有比仅仅使用蛮力更好的解决算法?
- c# - 使用 ASP.NET 身份在 ASP.NET MVC 5 应用程序中进行身份验证
- r - 从 LASSO 输出创建 model.matrix()
- amazon-web-services - 如何将我的结构放入 Rust 中 AWS Kinesis 的 PutRecordInput?
- python - 尝试将字典传递给熊猫数据框时,如何解决: ValueError: If using all scalar values, you must pass an index