我使用Session.getEffectiveUser()命令返回工作表中活动用户的结果,但如果其他用户输入同一工作表,则结果将发生冲突。
也就是说,一次只能输入一个。我该怎么做才能防止这种冲突出现?
我认为疯狂的解决方案:如果我同时拥有2个活跃用户,那么这个工作表有没有办法加倍,如果第二个用户离开则删除?
很多! 抱歉我的英语不好!
答案 0 :(得分:0)
以下是将代码部署为网络应用的步骤,以便不会发生冲突。
为此,您需要一个前端,您将从当前用户访问网络应用程序中获取输入或其他内容。
现在,只在您的appscript屏幕中,您可以转到文件 - >新的 - > html文件,并将其命名为index.html或任何你喜欢的。以简单的html格式编码。如果必须,也可以应用javascript。要在外部添加javascript,您可以创建另一个.html文件并在那里编写标记。这些都只是简单的html和javascript。
现在,我们必须以某种方式将它与我们的应用程序相关联。因此,请在您的appscipt中编写此函数:
function doGet(e)
{
var template = HtmlService.createTemplateFromFile('Index');
return template.evaluate()
.setTitle('YOUR_TITLE')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
并在Index.html页面中写下这一行(你可以在<html>
标签之外写出来):
<?!= HtmlService.createHtmlOutputFromFile('JavaScript').getContent(); ?>
请注意,每次对代码进行新的更改时,都应该始终选择项目版本&#39; new&#39;然后单击“更新”。
几点提示: 要从javascript调用appscript的函数,您可以这样写:
google.script.run.withSuccessHandler(FUNCTION_NAME).APPSCRIPT_FUNCTION();
它将做的是,它将异步调用appscript函数,当它成功执行时,将执行名为&#39; FUNCTION_NAME的下一个javascript函数。
这将如何解决您的问题?
Session.getActiveUser()
将单独运作。因此,冲突不会发生。
自己尝试一下,你就会解决你的疑惑。如有任何疑问请咨询,社区总是很乐意提供帮助。 :)